php 兼容[Object]和[Array]的处理 function($objectArr_or_arrayArr)

来源:互联网 发布:js隐藏input光标 编辑:程序博客网 时间:2024/06/06 13:06

函数的功能是对一个数组进行处理,数组中每个item都是一个object或array。

处理之前需要对每个item进行类型转换,统一为object,处理之后需要把每个item的类型还原为原来的类型。


function process($objectArr_or_arrayArr) {    //判断数组中元素的类型    if (count($objectArr_or_arrayArr) > 0) {        foreach ($objectArr_or_arrayArr as $item) {            if (is_array($item)) {                $dataType = 'array';            } else {                $dataType = 'object';            }            break;        }    } else {        return [];    }    //如果元素是array则转换成object    $object_arr = [];    if ($dataType == 'array') {        foreach ($objectArr_or_arrayArr as $item) {            $object_arr[] = (object)$item;        }    } else {        $object_arr = $objectArr_or_arrayArr;    }    //处理流程    $ret_arr = array();    for ($i=0; $i < count($object_arr); $i++) {        //process...        //将处理完的元素存入返回数组        if ($dataType == 'object') {            array_push($ret_arr, $object_arr[$i]);        } else if ($dataType == 'array') {            array_push($ret_arr, json_decode(json_encode($object_arr[$i]), true));            //使用ArrayObject()进行数据类型转换得到的数据用is_array()判断为false            //array_push($ret_arr, (new \ArrayObject($object_arr[$i])));        }    }    return $ret_arr;}


0 0
原创粉丝点击