我想通过key => value将对象数组拆分成多个数组,但我无法弄清楚如何。
我有一个这样的数组:
Array => (
[0]=>stdClass Object(
[id]=>1
[title]=> Title1
[content]=>Content1
[cat]=>Cat1
[date]=>20140910
)
[1]=>stdClass Object(
[id]=>2
[title]=> Title2
[content]=>Content2
[cat]=>Cat2
[date]=>20140910
)
[2]=>stdClass Object(
[id]=>3
[title]=> Title3
[content]=>Content3
[cat]=>Cat1
[date]=>20140910
)
)
我想通过“cat”=>“value”将其拆分并创建一个这样的数组
Array => (
[Cat1] => Array(
[0] => Array(
[id]=>1
[title]=> Title1
[content]=>Content1
[cat]=>Cat1
[date]=>20140910
)
[1] => Array(
[id]=>3
[title]=> Title3
[content]=>Content3
[cat]=>Cat3
[date]=>20140910
)
)
[Cat2] => Array(
[0] => Array(
[id]=>2
[title]=> Title2
[content]=>Content2
[cat]=>Cat2
[date]=>20140910
)
)
)
所以这就是我想要做的事情,但我做不到。
答案 0 :(得分:3)
您可以使用casting
。在对象之前使用(array)
。这里有一个例子..
$newArr = array();
foreach($obj as $val){
$newArr[$val->cat][] = (array)$val;
}
答案 1 :(得分:2)
$array = array();
foreach ($objects as $k => $v) {
if (!isset($array[$v->cat])) {
$array[$v->cat] = array();
}
$array[$v->cat][] = (array) $v;
}