PHP常用自定义处理函数
程序员文章站
2024-03-14 13:59:22
...
1.多维数组按照某一相同元素累加另一个元素值
/**
* @param $arr 多维数组结构相同
* @param $index 唯一建
* @param $value 要累加的值key
* @return array
*/
function my_merge($arr,$index,$value)
{
$newArr = [];
foreach($arr as $v){
foreach($v as $key=>$val){
if(isset($newArr[$val[$index]])){
$newArr[$val[$index]][$value]+=$val[$value];
}else{
$newArr[$val[$index]] = $val;
}
}
}
return array_values($newArr);
}
2.二维数组按照某个元素排序
/**
* @param array $data 要排序的数组
* @param $field 要排序的字段
* @param string $rule 排序规则
* @return mixed
*/
function my_sort($data,$field,$rule="ASC"){
switch ($rule) {
case 'DESC':
$last_names = array_column($data,$field);
array_multisort($last_names,SORT_DESC,$data);
break;
case 'ASC':
$last_names = array_column($data,$field);
array_multisort($last_names,SORT_ASC,$data);
break;
}
return $data;
}
3.删除二维数组中不需要的字段
/**
* 删除二维数组中不需要的字段
* @param array $arr 要处理的数组
* @param array $field 需要删除的字段
* @return mixed
*/
function delete_field($arr=[],$field=[]){
foreach ($arr as $key => $val){
$keys = array_keys($val);
foreach ($field as $i => $j){
if (in_array($j,$keys)){
unset($arr[$key][$j]);
}
}
}
sort($arr);
return $arr;
}