PHP Разбить массив объектов на несколько массивов по значению key = & gt;

Я хотел бы разбить массив объектов на несколько массивов по значению key =>, но я не мог понять, как это сделать.

У меня есть такой массив:

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
)
)

и я хотел бы разделить это на «кошка» => «значение» и создать массив, как это

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

Решение

Ты можешь использовать casting, использование (array) перед объектом. Пример здесь ..

$newArr = array();
foreach($obj as $val){
$newArr[$val->cat][] = (array)$val;
}
3

Другие решения

$array = array();
foreach ($objects as $k => $v) {
if (!isset($array[$v->cat])) {
$array[$v->cat] = array();
}
$array[$v->cat][] = (array) $v;
}
2

По вопросам рекламы [email protected]