Добрый день, помогите разобраться, есть массив полученный из
json_decodePHP:
[0]=> [«name»]=> string(4) «name» [«value»]=> string(8) «круг» } [1]=> [«name»]=> string(5) «ed_iz» [«value»]=> string(4) «кг» } [2]=> [«name»]=> string(9) «quanitity» [«value»]=> string(2) «20» } [3]=> [«name»]=> string(5) «prise» [«value»]=> string(4) «1500» } [4]=> [«name»]=> string(3) «nds» [«value»]=> string(3) «20%» } [5]=> [«name»]=> string(4) «name» [«value»]=> string(18) «двигатель» } [6]=> [«name»]=> string(5) «ed_iz» [«value»]=> string(2) «т» } [7]=> [«name»]=> string(9) «quanitity» [«value»]=> string(2) «20» } [8]=> [«name»]=> string(5) «prise» [«value»]=> string(3) «150» } [9]=> [«name»]=> string(3) «nds» [«value»]=> string(3) «20%» } [10]=> [«name»]=> string(4) «name» [«value»]=> string(12) «полоса» } [11]=> [«name»]=> string(5) «ed_iz» [«value»]=> string(2) «т» } [12]=> [«name»]=> string(9) «quanitity» [«value»]=> string(3) «0,1» } [13]=> [«name»]=> string(5) «prise» [«value»]=> string(5) «70000» } [14]=> [«name»]=> string(3) «nds» [«value»]=> string(3) «20%» } }как его превратить в такой?
PHP:
[«name»]=> string(12) «полоса» [«ed_iz»]=> string(2) «т» [«quanitity»]=> string(3) «0,1» [«prise»]=> string(5) «70000» [«nds»]=> string(3) «20%» }PHP:
foreach($data as $keys =>$value){ $result[$value[‘name’]] = $value[‘value’]; }при разборе foreach получаю только последние данные. понимаю что он перезаписывает. но не совсем соображу как сделать так чтоб получить все данные.
перезаписывать должен только в том случае, если у разных записей значение поля «name» совпадает, а так-то верно всё.
Спасибо. Но я просто не совсем соображу как мне с ним дальше работать. Хочется чтото вроде этого получить. А инпутов от куда все это приходит может быть разное количество.
PHP:
}
@Дато, какое отношение последний вопрос имеет к первому?
Так эт один и тот же. Не соображу как из первого массива в начале темы. Сделать так, чтоб он выглядел как пример сообщения чуть выше.
из первого последний никак, либо ты что-то скрываешь от нас )))
Согласен наверно неправильно начал. вот такой блок завернут в <form>
HTML:при нажатии на кнопку если надо добавляется еще один такой блок в форму. и если нажать на кнопку отправить вся эта очень длинная форма улетает в php. в формате 1 массива. так вот как их сгрупировать чтоб это было похоже на такой массив
PHP:
}
и откуда в результирующем массиве «type» взяться должен?
Ниоткуда. Это просто визуальный пример массива.
— Добавлено —PHP:
}
ну, на абстрактный вопрос можно получить максимум абстрактный ответ
почему абстрактный? Только ключи смутили? Так я исправил.
Очень не хватает вывода PHP: var_export — Manual вместо var_dump.
PHP:
array ( 0 => array ( ‘name’ => ‘name’, ‘value’ => ‘имя’, ), 1 => array ( ‘name’ => ‘ed_iz’, ‘value’ => ‘кг’, ), 2 => array ( ‘name’ => ‘quanitity’, ‘value’ => ‘кол-во’, ), 3 => array ( ‘name’ => ‘prise’, ‘value’ => ‘1111’, ), 4 => array ( ‘name’ => ‘nds’, ‘value’ => ‘1.2’, ), 5 => array ( ‘name’ => ‘name’, ‘value’ => ‘имя2’, ), 6 => array ( ‘name’ => ‘ed_iz’, ‘value’ => ‘т’, ), 7 => array ( ‘name’ => ‘quanitity’, ‘value’ => ‘кол-во’, ), 8 => array ( ‘name’ => ‘prise’, ‘value’ => ‘222’, ), 9 => array ( ‘name’ => ‘nds’, ‘value’ => ‘1.2’, ), )
Код (Text):
$result = array(); $current_key = »; foreach($data as $value) { if($value[‘name’] == ‘name’) { $current_key = $value[‘value’]; } $result[$current_key][$value[‘name’]] = $value[‘value’]; } print_r($result);
Спасибо)
Если name не уникален, то в $current_key следует вставить счетчик