数组处理技巧

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;
}

posted @ 2016-06-07 10:29  野蛮人一号  阅读(134)  评论(0编辑  收藏  举报