Как рационализировать многомерный массив в php? - PullRequest
0 голосов
/ 12 сентября 2011

Я пробовал это весь день!Как бы я преобразовал верхний многомерный массив в нижний.

Array (
[0] => Array ( [id] => 34 [email] => a@example.com ) 
[1] => Array ( [id] => 34 [email] => b@example.com ) 
[2] => Array ( [id] => 33 [email] => c@example.com ) 
[3] => Array ( [id] => 33 [email] => d@example.com ) 
[4] => Array ( [id] => 33 [email] => e@example.com ) 
) 

Array (
[0]=>Array ([id] => 34 [email] => Array ([0]=> a@example.com [1]=>b@example.com )
[1]=>Array ([id] => 33 [email] => Array ([0]=> c@example.com [1]=>d@example.com [2]=>e@example.com)
)

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

Разве не проще использовать ключи для хранения идентификаторов? Как это:

Array (
[34]=>Array ([email] => Array ([0]=> a@example.com [1]=>b@example.com )
[33]=>Array ([email] => Array ([0]=> c@example.com [1]=>d@example.com [2]=>e@example.com)
)

Тогда группировка электронных писем станет тривиальной задачей.

1 голос
/ 12 сентября 2011
$new_array = array();
foreach ($orig_array as $child) {
    $new_array[$child['id']][] = $child['email'];
}

$final_array = array();
foreach($new_array as $child) {
   $final_array[] = $child;
}

Первый цикл создает массив, связанный с полями id, и просто помещает на него каждый адрес электронной почты. Затем второй цикл берет этот промежуточный массив и оборачивает вокруг него другой массив для ключей 0,1 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...