Maison >développement back-end >tutoriel php >PHP数组如何其中相同的cid转换并且加新字段new二维数组?
数组:
<code>Array ( [0] => Array ( [id] => 1 [menu_collapse] => 超级菜单 [menu_items] => 写文章 [cid] => 1 ) [1] => Array ( [id] => 2 [menu_collapse] => 维护菜单 [menu_items] => 管理数据 [cid] => 2 ) [2] => Array ( [id] => 3 [menu_collapse] => 维护菜单 [menu_items] => 管理用户 [cid] => 2 ) )</code>
如何把上面数组转换这样的?
<code>Array ( [0] => Array ( [id] => 1 [menu_collapse] => 超级菜单 [menu_items] => 写文章 [cid] => 1 ) [1] => Array ( [new] => Array ( [id] => 2 [menu_collapse] => 维护菜单 [menu_items] => 管理数据 [cid] => 2 ) ( [id] => 2 [menu_collapse] => 维护菜单 [menu_items] => 管理数据 [cid] => 2 ) )</code>
数组:
<code>Array ( [0] => Array ( [id] => 1 [menu_collapse] => 超级菜单 [menu_items] => 写文章 [cid] => 1 ) [1] => Array ( [id] => 2 [menu_collapse] => 维护菜单 [menu_items] => 管理数据 [cid] => 2 ) [2] => Array ( [id] => 3 [menu_collapse] => 维护菜单 [menu_items] => 管理用户 [cid] => 2 ) )</code>
如何把上面数组转换这样的?
<code>Array ( [0] => Array ( [id] => 1 [menu_collapse] => 超级菜单 [menu_items] => 写文章 [cid] => 1 ) [1] => Array ( [new] => Array ( [id] => 2 [menu_collapse] => 维护菜单 [menu_items] => 管理数据 [cid] => 2 ) ( [id] => 2 [menu_collapse] => 维护菜单 [menu_items] => 管理数据 [cid] => 2 ) )</code>
<code class="php"> $arr = [ ['id' => 1, 'menu_collapse' => '超级菜单', 'menu_items' => '写文章', 'cid' => 1, ], [ 'id' => 2, 'menu_collapse' => '维护菜单', 'menu_items' => '管理数据', 'cid' => 2, ], [ 'id' => 3, 'menu_collapse' => '维护菜单', 'menu_items' => '管理用户', 'cid' => 2, ] ]; $result=[]; $res=[]; foreach($arr as $k=>$v){ $result[$v['cid']][]=$v; } foreach($result as $key=>$value){ if(count($value) == 1) { $res[$key]=$value[0]; } else{ $res[$key]['new']=$value; } } echo '<pre class="brush:php;toolbar:false">';print_r(array_values($res)); /* Array ( [0] => Array ( [id] => 1 [menu_collapse] => 超级菜单 [menu_items] => 写文章 [cid] => 1 ) [1] => Array ( [new] => Array ( [0] => Array ( [id] => 2 [menu_collapse] => 维护菜单 [menu_items] => 管理数据 [cid] => 2 ) [1] => Array ( [id] => 3 [menu_collapse] => 维护菜单 [menu_items] => 管理用户 [cid] => 2 ) ) ) ) */
你只能遍历数组来处理了。