[英]How to group and echo multidimensional array
I want to echo multidimensional array from my database, I have tried to search in stackoverflow, but I can't implemented well. 我想从我的数据库中回显多维数组,我试图在stackoverflow中进行搜索,但是我不能很好地实现。
Here's my array : 这是我的数组:
Array (
[0] => Array (
[product_name] => BMW
[category_name] => Car
)
[1] => Array(
[product_name] => Jaguar
[category_name] => Car
)
[2] => Array(
[product_name] => Toyota
[category_name] => Car
)
[3] => Array (
[product_name] => Jeep
[category_name] => Car
)
[4] => Array (
[product_name] => Ducati
[category_name] => Bike
)
)
I need to group this array to be like this : 我需要将这个数组分组为这样:
Array(
[0] => Array(
[category_name] => Car
[product_name] => Array(
[0] => Array(
[product_name] => BMW
)
[1] => Array(
[product_name] => Toyota
)
[2] => Array(
[product_name] => Jaguar
)
[3] => Array(
[product_name] => Jeep
)))
[1] => Array (
[category_name] => Bike
[product_name] => Array
(
[0] => Array
(
[product_name] => Ducati
)) )
And then echo to html list : 然后回显到html list:
Car : - BMW - Toyota - Jaguar - Jeep 汽车:-宝马-丰田-捷豹-吉普车
Bike : - Ducati 自行车:-杜卡迪
Please help.. Thanks 请帮助..谢谢
Here is your snippet, please refer inline doc for explanation 这是您的代码段,请参考内联文档以获取解释
$temp = [];
foreach ($arr as $key => $value) {
$temp[$value['category_name']]['category_name'] = $value['category_name']; // first category assigned
$temp[$value['category_name']]['product_name'][] = $value['product_name']; // grasping all values for same category name
}
foreach ($temp as $key => $value) {
echo $value['category_name'].':- '. implode(" - ", $value['product_name']).'<br>'; // creation of string
}
Hope it helps. 希望能帮助到你。
$t = [];
foreach($input_array as $v) {
$t[$v['category_name']] [] = $v['product_name'];
}
$out = [];
foreach ($t as $key => $val) {
$out[$key] = implode(',',$val);
}
echo $out['car'];
echo "\n";
echo $out['bike'];
You can use array_map
, array_column
您可以使用array_map
, array_column
$res=[];
array_map(function($v) use (&$res){
$res[$v['category_name']][] = ['product_name' => $v['product_name']];
}, $arr);
foreach($res as $type => $value){
echo $type.':-'.implode(',',array_column($value, 'product_name'));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.