数组处理技巧
1.重组数组
$a = array(
array(
"id" => "1",
"order_code" => "AAA"
),
array(
"id" => "2",
"order_code" => "AAA"
),
array(
"id" => "3",
"order_code" => "BBB"
)
);
foreach($a as $v)
$r[$v['order_code']][] = $v;
print_r(array_values($r));
Array
(
[0] => Array
(
[0] => Array
(
[id] => 1
[order_code] => AAA
)
[1] => Array
(
[id] => 2
[order_code] => AAA
)
)
[1] => Array
(
[0] => Array
(
[id] => 3
[order_code] => BBB
)
)
)
2.计算数组中某重复元素特定条件下次数,如一天内被举报次数,一周内运动次数
function count_repeat($old_arr,$repeat_val){
foreach ($old_arr as $k=>$v){
$repeat_arr[] = $v['bycomplainid'].'-'.$v[$repeat_val];
}
$unique_arr = array_unique($repeat_arr);
//重组
foreach ($unique_arr as $k=>$v){
$tmp_str1 = '';
$n = 0;
foreach ($old_arr as $kk=>$vv){
if ($vv['bycomplainid'].'-'.$vv[$repeat_val] == $v){
$tmp_str1 .=strval($vv['id']).'.';
$n++;
}
}
$old_arr[$k]['tipnum'] = $n;
$old_arr[$k]['detial_id'] = substr($tmp_str1, 0,strlen($tmp_str1)-1);
}
//去重
foreach ($old_arr as $k=>$v){
if (!$v[tipnum]){
unset($old_arr[$k]);
}
}
return $old_arr;
}