Мне нужно присоединиться ко всем subarray Name
значения в одном подмассиве.
Заданный формат ввода:
Array
(
[0] => Array
(
[0] => Array
(
[Name] => kumar
)
[1] => Array
(
[Name] => siva
)
)
[1] => Array
(
[0] => Array
(
[Name] => Arun
)
[1] => Array
(
[Name] => Prem
)
)
)
требуемый формат вывода
Array
(
[0] => Array
(
[0] => Array
(
[Name] => kumar, siva
)
)
[1] => Array
(
[0] => Array
(
[Name] => Arun, Prem
)
)
)
Моя попытка кодирования:
$final = array();
foreach ($NameArray as $row) {
foreach ($row as $rows) {
$final[] = $rows['Name'];
}
}
print_r($final);
Это показывает каждый отдельный. Мне нужно, чтобы каждый подмассив представлял собой одно имя массива в формате запятой.
Вы можете сделать что-то вроде этого:
foreach($a as $k1=>$ar1){
$text = '';
foreach($ar1 as $t){
$text .= "{$t['Name']}, ";
}
unset($a[$k1]);
$a[$k1][0]['Name'] = substr($text,0,-2);
}
var_dump($a);
Выход:
array (size=2)
0 =>
array (size=1)
0 =>
array (size=1)
'Name' => string 'kumar, siva' (length=10)
1 =>
array (size=1)
0 =>
array (size=1)
'Name' => string 'Arun, Prem' (length=9)
Это может быть решено кратко с одной петлей и имплозией столбчатых значений в каждом подмассиве.
Код (демонстрация)
$a = [
[['Name' => 'kumar'],['Name' => 'siva']],
[['Name' => 'Arun'],['Name' => 'Prem']]
];
foreach ($a as $i => $group) {
$result[$i][] = ['Name' => implode(', ', array_column($group, 'Name'))];
}
var_export($result);
Выход:
array (
0 =>
array (
0 =>
array (
'Name' => 'kumar, siva',
),
),
1 =>
array (
0 =>
array (
'Name' => 'Arun, Prem',
),
),
)