我正在尝试将两个对象放入一个数组中以进行循环。
$arr = array();
while ($data = $d->fetch()) {
$a = new aEntity();
$b = new bEntity();
$a->setData1($data['data1']);
$b->setData2($data['data2']);
$arr[] = (object) array_merge((array) $a, (array) $b);
}
return $arr;
如何将$a
和$b
的值放入$arr[]
中?
使用array_merge()
会引发以下错误:
致命错误:允许的内存大小为134217728字节已用尽(尝试分配28672字节)
谢谢您的帮助
答案 0 :(得分:0)
我发现将对象转换为数组的最简单方法是先将对象编码为JSON,然后使用数组标志对其进行解码。 (请参见json_decode())
$new_array = array();
if (is_array($arr) || is_object($arr)) {
foreach($arr as $d) {
$d = json_encode($d); //this will convert an object OR an array to JSON
$d = json_decode($d,TRUE);
//the TRUE flag will convert JSON to an array rather than an object
$new_array = array_merge($d,$new_array);
//merges array $d into $new_array
}
}
$new_array
将是一个包含两个对象的元素的数组。