Пересобрать массив

Dimexio

Новичок
Здравствуйте. Нужна помощь, не могу сообразить.

Есть массив A - id|имя|кол-во|цена :
Array
(
[0] => 55|Икра черная осетровая|1|1435,
[1] => 56|Осетр охлажденный|1|2000
)
Есть массив B (unit - кол-во) :
Array
(
['0'] => Array(['unit'] => 1),
['1'] => Array(['unit'] => 1['del'] => on)
)
Как в массиве A изменить кол-во? Точнее как пересобрать массив A?
 

Kotofey

FloodMaster.
Здравствуйте. Нужна помощь, не могу сообразить.

Есть массив A - id|имя|кол-во|цена :

Есть массив B (unit - кол-во) :

Как в массиве A изменить кол-во? Точнее как пересобрать массив A?
Есть функция разделения строки explode, в твоем случае можешь использовать её.
Почему бы тебе не хранить данные хотябы в таком виде :
PHP:
Array(
[0] => Array("id"=>55,"name"=>"Икра черная", "count"=>1, "cost"=>1435),
[1]=>Array("id"=>56, "name"=>"Осетр", "count"=>1,"cost"=>2000)
)
 

AnrDaemon

Продвинутый новичок
array_walk с каллбэком. Пишешь cb, делающий нужную работу над массивом, и прогоняешь его по массиву.
 

vasinsky

Новичок
Например вот так
(это примитивный вариант без каких либо проверок)

PHP:
$arr = array
(
  '55|product1|1|1435',
  '56|product2|1|2000'

);

function expl($str){
  $t = explode('|', $str);

  return array(
              'id'=>$t[0],
              'name'=>$t[1],
              'count'=>$t[2],
              'cost'=>$t[3]
  );
}

$res = array_map('expl',$arr);

echo '<pre>' . print_r($res, 1) . '</pre>';
Результат работы

Код:
Array
(
    [0] => Array
        (
            [id] => 55
            [name] => product1
            [count] => 1
            [cost] => 1435
        )

    [1] => Array
        (
            [id] => 56
            [name] => product2
            [count] => 1
            [cost] => 2000
        )

)
Но учти - т.к. разделитель строки "|" - если этот символ попадётся в имени товара - всё посыпется.
 
Сверху