объединить массивы, где некоторое значение родительских массивов не равно

Я массив массивов, что выглядит примерно так:

$messages = array (
0 =>
array(
'keyT' => 'id.key'
'mess' => array(
array(1,0)
)
...
)

Я хочу слить mess свойства массивов, где 'keyT' не равно.
Я бегу по массивам:

foreach ($messages as $k => $current) {
foreach ($messages as $ke => $all) {
if ($current['keyT'] == $all['keyT']) {
array_merge( ... )
}
}
}

Но это не дает мне никаких результатов. Может быть, кто-нибудь может мне помочь. Спасибо!

0

Решение

Попробуйте этот код

$messages = array(
0 =>
array(
'keyT' => 'A',
'mess' => array(
array(1, 0)
)
),
1 =>
array(
'keyT' => 'A',
'mess' => array(
array(1, 2)
)
),
2 =>
array(
'keyT' => 'B',
'mess' => array(
array(3, 4)
)
)
);

$result = array();
foreach ($messages as $msg) {
$key = $msg['keyT'];
if (!isset($result[$key])) {
$result[$key] = array();
}
$result[$key] = array_merge($result[$key], $msg['mess']);
}

print_r($result);

Выход

Array
(
[A] => Array
(
[0] => Array
(
[0] => 1
[1] => 0
)

[1] => Array
(
[0] => 1
[1] => 2
)

)

[B] => Array
(
[0] => Array
(
[0] => 3
[1] => 4
)

)

)
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector