检查多暗阵列中的值?

时间:2012-05-18 08:00:07

标签: php arrays

我的数组就像:

Array
(
    [0] => Array
        (
            [id] => 6
            [name] => Name1
        )
    [1] => Array
        (
            [id] => 7
            [name] => Name2
        )
)            

如何检查此多维数组中是否存在任何特定的name值?

5 个答案:

答案 0 :(得分:1)

function checkName($haystack, $needle) {
   foreach($haystack as $hay) {
      if($hay['name'] == $needle) {
         return true;
      }
   }
   return false;
}

答案 1 :(得分:1)

迭代。

function multi_in_array($name, $array) {
    foreach ($array as $sub_array) {
        if (in_array($name, $array)) {
            return true;
        }
    }
    return false;
}

答案 2 :(得分:0)

也许您正在寻找in_array功能?

答案 3 :(得分:0)

使用该结构,您唯一的选择基本上是线性搜索:

$found = null;
foreach ($arr as $idx => $elem) {
    if ($elem['name'] == $searchName) {
        $found = $idx;
    }
}
if ($found !== null) {
    echo "Found $searchName at $idx.";
}

答案 4 :(得分:0)

此功能可以帮助您,

<?php

    function multi_dim_array_search($array,$col,$val)
    {
        foreach($array as $elem)
            if($elem[$col] == $val)
                return true;

            return false;
    }


    $array = array(
        array('id' => 1,'name' => 'Name1'),
        array('id' => 2,'name' => 'Name2')
    );

    //usage
    var_dump(multi_dim_array_search($array,'name','Name1')); //true
    var_dump(multi_dim_array_search($array,'name','Name2')); //true
    var_dump(multi_dim_array_search($array,'name','Name3')); //false


?>