这个地方打印出来的效果
$grouping_name = array();
foreach ($userlist as $k2 => $v2) {
$grouping_name[] = $v2['role_id'];
}
var_dump($grouping_name);die;
// $grouping_name 取出来的相同字段值组成的一位数组;
------------分割线---------------
上面的是取单个指定字段组成新数组,下面这个是将所有的组成新的数组,以字段名为健名
$newArr = array();
$keys = array();
foreach ($userlist as $key => $val) {
$keys = array_keys($val);
foreach ($keys as $k=>$v){
$newArr[$v][] = $val[$v];
}
}
var_dump($newArr);die;
你这是在一个数组中,还是多个数组中。 如果一个数组,取相同值的键组合成新的数组数组,用这个函数:
array array_keys ( array $array [, mixed $search_value [, bool $strict = false ]] )
三个参数: 第一个是你要检索的数组;第二个是要匹配的值;第三个可选的,是否严格比较(===)。默认是false。
返回一个数组,就是相同值的键组合成新的数组数组。
示例:
将数组中值为“blue”的键,组合成一个新的数组
<?php
$array = array( "one" => "blue" , "two" => "red" , "three" => "green" , "four" => "blue" , “five”=> "blue" );
$keyArray = array_keys ( $array , "blue" );
print_r ($keyArray);
?>
上面代码将输出:
Array
(
[0] => one
[1] => four
[2] => five
)
-------------------------------------------------分割线--------------
如果userlist是一维数组,应该:
$cont = count($userlist);
foreach($userlist as $k => $v){
//这里不能$v['group_id']
$keyArray = array_keys($userlist, $v);
var_dump($keyArray);
}
或者先判断值是否有相同的
//统计数组userlist的所有的值出现的次数,返回一个数组
//返回数组用userlist数组中的值作为键名,该值在userlist数组中出现的次数作为值。
$countArray = array_count_values($userlist);
foreach($countArray as $k => $v){
//判断值出现两次或两次以上
if($v > 1){
$keyArray = array_keys($userlist, $k);
var_dump($keyArray);
}
}
如果是多维数组,不能直接用。 相当于多个数组里比对相同的值。直接取交集,或者逐个判断。你这个还有个问题,如果group_id 跟 rold_id 值相同的情况,如果有这种情况出现,要排除的话,直接用api函数解决不了,自己做个函数吧。