2016-11-23 109 views
0

我有一个返回非常大的json对象的webservice。我将它解码为一个数组进行解析。从PHP中获取json中特定字段的所有实例

我想要做的是从单个数组对象的开始处的[id] => 21的json数组中提取所有数组成员。

使用LINQ的一个很好的简单任务,但不知道如何在PHP中执行此操作。必须有一种方法来过滤和提取。

+2

添加代码与现有的尝试:D – georoot

+0

而json的非关键示例返回 – Bobot

回答

0

我将它们传递给回调函数在数组中使用类似array_filter

function find_id($var) 
{ 
    // returns whether the is is 21 
    return($var['id'] === 21); 
} 


$result = array_filter($jsondata, "find_id")); 

array_filter迭代在每个值。如果回调函数返回true,则数组中的当前值将返回到结果数组中。数组键被保留。

+0

这很完美。有没有办法指定过滤器的值,而不是硬编码?如果我可以避开它,我宁愿不必使用$ GLOBAL [...]。 – Nodoid

+0

就像这样:http://php.net/manual/en/function.array-filter.php#93965 ?? – Sitethief

+0

或者使用可以接收参数的'array_walk' – Sitethief