函数的功能是对一个数组进行处理,数组中每个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;
}