$viewData
次のようなオブジェクトの配列を返す Web サービスを使用しています。
Array
(
[0] => stdClass Object
(
[id] => 64757
[title] => Frogger
[votes] => 1
[status] => gotit
)
[1] => stdClass Object
(
[id] => 64758
[title] => The Legend of Zelda
[votes] => 1
[status] => wantit
)
[2] => stdClass Object
(
[id] => 64759
[title] => Grand Theft Auto
[votes] => 1
[status] => wantit
)
)
これを 2 つの別個の配列に分割する必要があります。1 つはステータスが wantit であるすべてのオブジェクトを含み、もう 1 つはステータスが gotit です。
array_filter()
カスタム関数を使用して、配列を 1 つ取得できます。
if(is_array($viewData) and (!empty($viewData))) {
function splitGames($v){
if ($v->status==="gotit") {
return true;
}
return false;
}
$gotEm = array_filter($viewData, "splitGames");
print_r($gotEm);
}
この関数は、私が期待するものを返します:
Array
(
[0] => stdClass Object
(
[id] => 64757
[title] => Frogger
[votes] => 1
[status] => gotit
)
)
元の配列の残りを 2 番目の配列に自動的に取得する方法はありますか、または「wantit」のステータスを探しarray_filter()
て元の配列で再実行する 2 番目のカスタム関数が必要ですか?