Php 使用不带foreach的json解码数组

Php 使用不带foreach的json解码数组,php,json,date,foreach,Php,Json,Date,Foreach,我有以下几个问题: $json = '[{"name":"Peter","bday":"1990-10-10"},{"name":"Mark","bday":"1992-08-10"},{"name":"John","bday":"1993-08-09"},{"name":"John","bday":"2000-05-19"}]'; 是名字和生日。有没有办法用一个标准来搜索没有foreach的生日 例如,“所有生日在1993-01-01之后的注册表” 谢谢我可以用数组过滤器功能来实现这一点 f

我有以下几个问题:

$json = '[{"name":"Peter","bday":"1990-10-10"},{"name":"Mark","bday":"1992-08-10"},{"name":"John","bday":"1993-08-09"},{"name":"John","bday":"2000-05-19"}]';
是名字和生日。有没有办法用一个标准来搜索没有foreach的生日

例如,“所有生日在
1993-01-01
之后的注册表”


谢谢

我可以用
数组过滤器
功能来实现这一点

function greater_than($arr){
    $date = $arr['bday'];

    if(strtotime($date) > strtotime('1993-01-01')){
        return $date;
    }
}

$json = '[{"name":"Peter","bday":"1990-10-10"},{"name":"Mark","bday":"1992-08-10"},{"name":"John","bday":"1993-08-09"},{"name":"John","bday":"2000-05-19"}]';
$dec = json_decode($json,true);
print_r(array_filter($dec, "greater_than"));

为什么不能使用foreach循环?是的,例如使用
array\u filter()
@johncode None。但是我认为可能有一种更有效的方法,我根据一些标准返回数据,而不必全部检查它们……我有一个使用array_filter()的工作示例但是我不想在没有看到您的努力的情况下发布它。是什么让您认为foreach循环比其他方法慢或慢?但这真的更好吗?