PHP计算具有特定属性

时间:2016-05-22 17:13:34

标签: php json count

我有一个像这样的json:

{
"data": [
{
"prop1":"aaa",
"prop2":"bbb",
"prop3":"1234",
"prop4":"2006"
},
{
"prop1":"ccc",
"prop2":"ddd",
"prop3":"4567",
"prop4":"2016"
},
{
"prop1":"aaa",
"prop2":"ddd",
"prop3":"4567",
"prop4":"2002"
}
]}

它将有~100个元素,我需要计算具有指定属性的元素,我尝试了

echo count($json['data']);

但它会让我知道json的所有元素 - 我需要知道prop1 => "aaa"

的元素数量

到目前为止我所拥有的:     

$file = "test.json";

$fh = fopen($file, 'a') or die();
$json = json_decode(file_get_contents($file), true);



echo '<pre>';
print_r($json);
exit();

?>

1 个答案:

答案 0 :(得分:1)

使用array_filter创建回调过滤功能

<?php 


$json = '{
"data": [
{
"prop1":"aaa",
"prop2":"bbb",
"prop3":"1234",
"prop4":"2006"
},
{
"prop1":"ccc",
"prop2":"ddd",
"prop3":"4567",
"prop4":"2016"
},
{
"prop1":"aaa",
"prop2":"ddd",
"prop3":"4567",
"prop4":"2002"
}
]}';



echo '<pre>';
$data = json_decode($json);
print_r($data->data);
$data->data = array_filter($data->data, function($item) { 
    return $item->prop1 == 'aaa';
});
print_r($data->data);
exit();

?>