简洁 网站模板河南做网站联系电话
目录
一、二维数组转一维数组
二、对二维数组进行指定key排序
三、二维数组转一维数组
四、两个二维数组取差集
五、对象转数组
六、判断元素是否在多维数组中
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;   
}
 
