我正在使用一个 Web 服务,它返回一个对象数组,$viewData
如下所示:
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
)
)
我需要将其拆分为两个单独的数组 - 一个包含状态为 wantit 的所有对象,另一个包含状态为 gotit 的对象。
我可以通过使用array_filter()
自定义函数从中获取一个数组:
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
)
)
有没有办法自动将原始数组的剩余部分放入第二个数组,或者我是否需要第二个自定义函数来查找“wantit”状态并array_filter()
在原始数组上重新运行?