/**
* 将对象转换成数组
* @param $obj
* @return mixed
*/
function object_to_array($obj){
$_arr = is_object($obj) ? get_object_vars($obj) :$obj;
foreach ($_arr as $key=>$val){
$val = (is_array($val) || is_object($val)) ? $this->object_to_array($val):$val;
$arr[$key] = $val;
}
return $arr;
}
/**
* 将二维数组组装成三维数组
* @param $arr
* @param $key
* @return array
*/
function changeTwoToThree($arr, $key) {
$new = [];
for ($i = 0; $i < count($arr); $i++) {
if (array_key_exists($arr[$i][$key], $new)) {
array_push($new[$arr[$i][$key]], $arr[$i]);
} else {
$new[$arr[$i][$key]][0] = $arr[$i];
}
}
return $new;
}
/**
* 处理数组
* @param $arr
* @param $key
* @return mixed
*/
function handleArray($arr, $key) {
for($i=0;$i<count($arr);$i++) {
$arr[$i] = $this->changeTwoToThree($arr[$i], $key);
}
return $arr;
}
/**
* 将数组的key恢复成数字序列
* @param $arr
* @return array
*/
function restore_array($arr){
if (!is_array($arr)){ return $arr; }
$c = 0; $new = array();
foreach ($arr as $key => $value) {
if (is_array($value)){
$new[$c] = restore_array($value);
}
else { $new[$c] = $value; }
$c++;
}
return $new;
}
/**
* 将数组的key恢复成数字序列
* @param $arr
* @return array
*/
function restore_array2($arr) {
foreach($arr as $value){
$new[] = $value;
}
return $new;
}
/**
* 将数组的key恢复成数字序列
* @param $arr
* @return mixed
*/
function restore_array3($arr) {
for($i=0;$i<count($arr);$i++) {
$arr[$i] = $this->restore_array2($arr[$i]);
}
return $arr;
}
/**
* 多维数组转二维
* @param $arr
* @return array
*/
function array_unzip_rescursive($arr) {
$res = array();
if(array_key_exists('pid', $arr) ){
$res[] = $arr;
} else {
foreach($arr as $item)
$res = array_merge($res, $this->array_unzip_rescursive($item));
}
return $res;
}
参考文章链接:
https://www.imooc.com/article/32023
https://www.cnblogs.com/bluealine/p/11040928.html
https://www.php.cn/php-sourcecode-43940.html