当前位置: 代码迷 >> PHP >> php 二维数组,该如何处理
  详细解决方案

php 二维数组,该如何处理

热度:303   发布时间:2016-04-28 18:57:30.0
php 二维数组
Array ( [0] => Array ( [AdminName] => sysadm [MenuNo] => ) [1] => Array ( [AdminName] => 00000 [MenuNo] => 30,27,32 ) [2] => Array ( [AdminName] => 00000 [MenuNo] => 25,26,27 ) [3] => Array ( [AdminName] => 00001 [MenuNo] => 30,27,32 ) )
数组如上:如何合并AdminName相同的,把MenuNo的值合并到一块
Array ( [0] => Array ( [AdminName] => sysadm [MenuNo] => ) [1] => Array ( [AdminName] => 00000 [MenuNo] => 30,27,32,25,26,27 ) [2] => Array ( [AdminName] => 00001 [MenuNo] => 30,27,32 ) )
------解决方案--------------------
$ar = array (
  0 => array ( 'AdminName' => 'sysadm', 'MenuNo' => ''),
  1 => array ( 'AdminName' => '00000',  'MenuNo' => '30,27,32' ),
  2 => array ( 'AdminName' => '00000',  'MenuNo' => '25,26,27' ),
  3 => Array ( 'AdminName' => '00001',  'MenuNo' => '30,27,32' ),
);

$res = array();
foreach($ar as $row) {
  if(! isset($res[$row['AdminName']])) $res[$row['AdminName']] = $row;
  else $res[$row['AdminName']]['MenuNo'] .= ',' . $row['MenuNo'];
}
print_r(array_values($res));
Array
(
    [0] => Array
        (
            [AdminName] => sysadm
            [MenuNo] => 
        )

    [1] => Array
        (
            [AdminName] => 00000
            [MenuNo] => 30,27,32,25,26,27
        )

    [2] => Array
        (
            [AdminName] => 00001
            [MenuNo] => 30,27,32
        )

)

这在计算方法中称为“聚类”
  相关解决方案