PHP获得与特定值匹配的修改数组

时间:2014-06-27 12:47:09

标签: php arrays multidimensional-array foreach

我有一个如下数组的数组:

        Array
(
    [0] => Array
        (
            [id] => 1
            [uid] => 746
            [lid] => 748
        )

   [1] => Array
        (
            [id] => 6
            [uid] => 746
            [lid] => 744
        )

   [2] => Array
        (
            [id] => 11
            [uid] => 749
            [lid] => 743
        )


)

我想要的是获得具有746的uid的修改过的数组。所以我期望的结果是:

Array
    (
        [0] => Array
            (
                [id] => 1
                [uid] => 746
                [lid] => 748
            )

       [1] => Array
            (
                [id] => 6
                [uid] => 746
                [lid] => 744
            )


    )

有没有快速的方法来做,而不是遍历每个元素并将匹配的数组保存到返回数组?

1 个答案:

答案 0 :(得分:1)

如果不检查每个元素,就无法做到这一点。话虽如此,你可以使用array_filter来做到这一点(虽然它会在幕后循环):

$arr = array_filter($arr, function($item){
    return $item['uid'] == 746;
});

在PHP 5.3.0之前,您必须声明一个函数:

function filter746($item){
    return $item['uid'] == 746;
}
$arr = array_filter($arr, 'filter746');