这个PHP数组怎么处理?请教!
问题描述:
原数组
$arr = [
[
'name' => '国家站',
'title' => '美国站',
'pic' => '111'
],
[
'name' => '国家站',
'title' => '英国站',
'pic' => '222'
],
[
'name' => '排行榜',
'title' => '每日',
'pic' => '333'
],
[
'name' => '排行榜',
'title' => '每月',
'pic' => '444'
]
];
转换成
$arr1=[
[
'name'=>'国家站',
'list'=>[
[
'title' => '美国站',
'pic' => '111'
],
[
'title' => '英国站',
'pic' => '222'
]
],
],
[
'name'=>'排行榜',
'list'=>[
[
'title' => '每日',
'pic' => '333'
],
[
'title' => '每月',
'pic' => '444'
]
],
]
];
就是name 一样的 list合并
答
代码如下,满意请采纳~
$arr = [
[
'name' => '国家站',
'title' => '美国站',
'pic' => '111'
],
[
'name' => '国家站',
'title' => '英国站',
'pic' => '222'
],
[
'name' => '排行榜',
'title' => '每日',
'pic' => '333'
],
[
'name' => '排行榜',
'title' => '每月',
'pic' => '444'
]
];
$temp = array();
$result = array();
foreach($arr as $item) {
if(!in_array($item['name'],$temp)){
array_push($temp, $item['name']);
$result[count($temp)-1]['name'] = $item['name'];
}
$result[count($temp)-1]['list'][] = [
'title' => $item['title'],
'pic' => $item['pic']
];
}
var_dump($result);
答
题主要的代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~
<meta charset="utf-8">
<?php
$arr = [
[
'name' => '国家站',
'title' => '美国站',
'pic' => '111'
],
[
'name' => '国家站',
'title' => '英国站',
'pic' => '222'
],
[
'name' => '排行榜',
'title' => '每日',
'pic' => '333'
],
[
'name' => '排行榜',
'title' => '每月',
'pic' => '444'
]
];
$arr1=[];
function getItem($name){
global $arr1;
$item=false;
for($i=0;$i<count($arr1);$i++) if($arr1[$i]['name']==$name)return $i;
$item=['name'=>$name,'list'=>[]];
$arr1[]=$item;
return count($arr1)-1;
}
foreach($arr as $item){
$index=getItem($item['name']);
$arr1[$index]['list'][]=['title'=>$item['title'],'pic'=>$item['pic']];
}
print_r($arr1);
?>
答
把数组转换为JSON格式,就是这样的格式了。
答
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632