首頁 > 後端開發 > php教程 > 请问如何用键名分组?

请问如何用键名分组?

WBOY
發布: 2016-06-23 14:38:26
原創
743 人瀏覽過

$arr1 = array ('0' => array ('fid' => 1, 'tid' => 1 , 'name' =>'Name2' ),'2' => array ('fid' => 1, 'tid' => 1,  'name' =>'Name1' ),'1' => array ('fid' => 1, 'tid' => 5 , 'name' =>'Name3' ),'3' => array ('fid' => 1, 'tid' => 7 , 'name' =>'Name4' ),'4' => array ('sid' => 2, 'tid' => 9,  'name' =>'Name5' ),'5' => array ('cid' => 2, 'tid' => 9,  'name' =>'Name5' ));
登入後複製


请问有什么最快的方法可以以键名fid,sid,cid分组。


回复讨论(解决方案)

$arr1 = array ('0' => array ('fid' => 1, 'tid' => 1 , 'name' =>'Name2' ),'2' => array ('fid' => 1, 'tid' => 1,  'name' =>'Name1' ),'1' => array ('fid' => 1, 'tid' => 5 , 'name' =>'Name3' ),'3' => array ('fid' => 1, 'tid' => 7 , 'name' =>'Name4' ),'4' => array ('sid' => 2, 'tid' => 9,  'name' =>'Name5' ),'5' => array ('cid' => 2, 'tid' => 9,  'name' =>'Name5' ));foreach($arr1 as $v) {  $k = key($v);  $res[$k][] = $v;}print_r($res);
登入後複製
Array(    [fid] => Array        (            [0] => Array                (                    [fid] => 1                    [tid] => 1                    [name] => Name2                )            [1] => Array                (                    [fid] => 1                    [tid] => 1                    [name] => Name1                )            [2] => Array                (                    [fid] => 1                    [tid] => 5                    [name] => Name3                )            [3] => Array                (                    [fid] => 1                    [tid] => 7                    [name] => Name4                )        )    [sid] => Array        (            [0] => Array                (                    [sid] => 2                    [tid] => 9                    [name] => Name5                )        )    [cid] => Array        (            [0] => Array                (                    [cid] => 2                    [tid] => 9                    [name] => Name5                )        ))
登入後複製

考虑到各成员数组的键名排列可能不一致,即 sid 可能在 name 后面
可将
  $k = key($v);
改为
  $k = key(array_intersect_key(array('fid' => '', 'sid' => '', 'cid' => ''), $v));

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板