PHP搜索行中的数组

时间:2014-03-06 15:14:19

标签: php arrays search line

我在mysql上有一个结果,我有很多行和很多列。我需要回显我不知道的特定行。

示例:

Array
(
    [0] => Array
        (
            [0] => 195
            [id_privilegios] => 195
            [1] => 206
            [id_usuario] => 206
            [2] => 10
            [id_menu] => 10
            [3] => S
            [consultar] => S
            [4] => 
            [inserir] => 
            [5] => S
            [alterar] => S
            [6] => 
            [excluir] => 
        )

    [1] => Array
        (
            [0] => 194
            [id_privilegios] => 194
            [1] => 206
            [id_usuario] => 206
            [2] => 9
            [id_menu] => 9
            [3] => S
            [consultar] => S
            [4] => S
            [inserir] => S
            [5] => S
            [alterar] => S
            [6] => S
            [excluir] => S
        )

    [2] => Array
        (
            [0] => 193
            [id_privilegios] => 193
            [1] => 206
            [id_usuario] => 206
            [2] => 1
            [id_menu] => 1
            [3] => S
            [consultar] => S
            [4] => S
            [inserir] => S
            [5] => S
            [alterar] => S
            [6] => S
            [excluir] => S
        )

    [3] => Array
        (
            [0] => 224
            [id_privilegios] => 224
            [1] => 206
            [id_usuario] => 206
            [2] => 56
            [id_menu] => 56
            [3] => S
            [consultar] => S
            [4] => S
            [inserir] => S
            [5] => S
            [alterar] => S
            [6] => 
            [excluir] => 
        )

    [4] => Array
        (
            [0] => 223
            [id_privilegios] => 223
            [1] => 206
            [id_usuario] => 206
            [2] => 52
            [id_menu] => 52
            [3] => S
            [consultar] => S
            [4] => S
            [inserir] => S
            [5] => S
            [alterar] => S
            [6] => S
            [excluir] => S
        )

)

我有这个数组例如,我想显示“consultar”列的值,其中id_menu = 7

我怎么能回应这个?

感谢

3 个答案:

答案 0 :(得分:1)

您可以将array_filterarray_map结合使用。

$result = array_map(
    function ($v) {
        return $v['consultar'];
    },
    array_filter($array, function ($v) {
        return $v['id_menu'] == 7;
    })
);
print_r($result);

答案 1 :(得分:0)

foreach($arr as $key=>$value){
    if(isset($arr[$key]["id_menu"]) && $arr[$key]["id_menu"] == 7){
         echo $arr[$key]["consultar"];
    }
}

答案 2 :(得分:0)

如果只有一个项目,你将不得不迭代并找到匹配的元素,如果有多个项目,一种方法是使用array_filter过滤掉所有匹配的数组元素。

function myFilter( $row) {
   return ($row['id_menu'] == 7);
}

$matches = array_filter($my_array, "myFilter");
foreach ($matches as $element) {
   echo "Menu Id: {$element['id_menu']} Consultar: {$element['consultar']}";
}