2013-12-04 2 views
0

У меня есть массив такого рода структуры:Как объединить многоэлементный массив по определенному элементу?

array(
    array('name' => 'Some name', 'data' => array()), 
    array('name' => 'Some name #2', 'data' => array()), 
    array('name' => 'Some name #3', 'data' => array()), 
    array('name' => 'Some name #4', 'data' => array()), 
    array('name' => 'Some name', 'data' => array()), 
) 

Каков наилучший способ объединить данные, где имена одинаковы? Может быть, есть некоторые функции, или мне нужно просто петлю через все?

+1

итерации через него и создать другой массив на основе элемента name как 'key', а затем добавить к нему элементы массива – DevZer0

ответ

1

итерацию через него и создать другой массив на основе имени элемента, как ключ, а затем добавлять элементы массива против него

, например

$x = array(
    array('name' => 'Some name', 'data' => array()), 
    array('name' => 'Some name #2', 'data' => array()), 
    array('name' => 'Some name #3', 'data' => array()), 
    array('name' => 'Some name #4', 'data' => array()), 
    array('name' => 'Some name', 'data' => array()), 
); 

$newarray = array(); 
foreach ($x as $item) { 
    $newarray[$item['name']][] = $item['data']; 
} 
Смежные вопросы