2014-09-21 1 views
0

키 => 값으로 객체 배열을 여러 배열로 분할하고 싶습니다.PHP 키 => 값으로 복수 배열로 객체 배열을 분할

는이 같은 배열이 있습니다

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

같은 배열을 만들고 싶습니다 내가하려고하는 것이지만 나는 할 수 없다.

답변

2

casting을 사용할 수 있습니다. 개체 앞에 (array)을 사용하십시오. 여기에 예 .. 단지`$ 배열

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

감사합니다.이 worekd! 나는 그 해결책이 너무 단순 할 것이라고 생각하지 않았다. 나는 일을 생각하는 경향이 있습니다 :) –

+0

당신은 환영합니다 :) – MH2K9

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

!의는 isset ($ 배열 [$ V-> 고양이]) ..''에 대한 필요가 없습니다, [$ V-> 고양이] [] = ..' 것 잘 지내라. – deceze

+0

그것은 명확성을위한 것입니다.) – olegkhuss

관련 문제