У меня есть массив как это:Как консолидировать повторяющиеся элементы этого массива в PHP?
$array = array(
0 => array("ordernumber" => "1", "name" => "John", "product" => "laptop", "component" => "memory"),
1 => array("ordernumber" => "1", "name" => "John", "product" => "laptop", "component" => "cpu"),
2 => array("ordernumber" => "1", "name" => "John", "product" => "desktop", "component" => "cpu"),
3 => array("ordernumber" => "2", "name" => "Pete", "product" => "monitor", "component" => "")
);
Он содержит данные из различных заказов, но, как вы можете видеть, заказ может содержать несколько купленных продуктов, и каждый продукт может содержать различные «компоненты». Там же много дубликатов данных в этом массиве, поэтому я хотел бы, чтобы превратить его в это:
$array = array(
0 => array(
"order" => array(
"ordernumber" => "1", "name" => "John"
),
"products" => array(
0 => array(
"name" => "laptop",
"components" => array("memory", "cpu")
),
1 => array(
"name" => "desktop",
"components" => array("cpu")
)
)
),
1 => array(
"order" => array(
"ordernumber" => "2", "name" => "Pete"
),
"products" => array(
0 => array(
"name" => "monitor",
"components" => array()
)
)
)
);
Что бы хороший способ сделать это?
использовать цикл foreach и соответствующим образом изменять данные. Что вы пробовали? – jitendrapurohit
Я плохо разбираюсь в массивах, поэтому у меня возникли проблемы даже с представлением о том, как должен выглядеть цикл (или составление нового массива). Благодаря приведенному ниже решению я имею более четкое представление о том, как решать подобные проблемы в будущем. – Marc