PHP 二维数组相关函数:二维数组指定key排序,二维数组转一维数组,两个二维数组取差集,对象转数组,判断元素是否在多维数组中
一、二维数组转一维数组
function towarr_to_onearr($arr,$item) { foreach ($arr as $key => $value) { $newArr[] = $value[$item]; } return $newArr; }
二、对二维数组进行指定key排序
/** * @desc 对二维数组进行指定key排序 * @param $arr 二维数组 * @param $shortKey 需要排序的列 * @param $short 排序方式 * @param $shortType 排序类型 */ function multi_array_sort($arr,$shortKey,$short=SORT_DESC,$shortType=SORT_REGULAR) { foreach ($arr as $key => $data){ $name[$key] = $data[$shortKey]; } array_multisort($name,$shortType,$short,$arr); return $arr; }
三、二维数组转一维数组
/** * @param $arr 数组 * @param $item 指定的项 */ function towarr_to_onearr($arr,$item) { foreach ($arr as $key => $value) { $newArr[] = $value[$item]; } return $newArr; }
四、两个二维数组取差集
/** * @param $arr1 数组 * @param $arr2 数组 * @param $key 对比的值 唯一 */ function get_diff_array($arr1,$arr2,$key) { $res = array(); foreach($arr1 as $v) { $tmp[$v[$key]] = $v; }; foreach($arr2 as $v) { if(! isset($tmp[$v[$key]])) { if (!empty($v)) { $res[] = $v; } } }; return $res; }
五、对象转数组
/** * @param $obj 对象 */ function objToArray($obj) { return json_decode(json_encode($obj), true); }
六、判断元素是否在多维数组中
/** * 判断元素是否在多维数组中 * @param $str 需要判断的元素 * @param $array 数组 * @return bool */ function deep_in_array($str, $array) { foreach($array as $item) { if(!is_array($item)) { if ($item == $str) { return true; } else { continue; } } if(in_array($str, $item)) { return true; } else if(deep_in_array($str, $item)) { return true; } } return false; }
——现在的努力,只为小时候吹过的牛逼! ——