0

我的数组是这样的:

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

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

4

5 回答 5

1
function checkName($haystack, $needle) {
   foreach($haystack as $hay) {
      if($hay['name'] == $needle) {
         return true;
      }
   }
   return false;
}
于 2012-05-18T08:02:21.390 回答
1

迭代。

function multi_in_array($name, $array) {
    foreach ($array as $sub_array) {
        if (in_array($name, $array)) {
            return true;
        }
    }
    return false;
}
于 2012-05-18T08:02:25.927 回答
0

也许您正在寻找in_array函数?

于 2012-05-18T08:02:16.950 回答
0

使用这种结构,您唯一的选择本质上是线性搜索:

$found = null;
foreach ($arr as $idx => $elem) {
    if ($elem['name'] == $searchName) {
        $found = $idx;
    }
}
if ($found !== null) {
    echo "Found $searchName at $idx.";
}
于 2012-05-18T08:02:46.060 回答
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


?>
于 2012-05-18T08:05:20.137 回答