php如果数组键存在于多维数组中

时间:2010-05-10 11:05:42

标签: php arrays multidimensional-array

如何检查此数组中是否存在名为$ attachements print_r的徽标,如下所示:

  

阵列(       [logo] => /home/richar2/public_html/ioagh/images/stories/jreviews/20100510115659_1_img.gif   )

当没有标识时,数组print_r的

  

Array()

我尝试过: if(isset($ attachments ['logo'])){..} 但条件代码在没有徽标时运行

6 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

isset()无法正常工作,我很确定应该这样做。也许你的代码中的其他地方有问题。

无论如何,如果你想尝试别的东西,有一个特定的功能:array_key_exists()

答案 2 :(得分:1)

这对我来说符合预期:

$arr['logo'] = '/home/richar2/public_html/ioagh/images/stories/jreviews/20100510115659_1_img.gif';
print_r($arr);

if (isset($arr['logo'])){
    echo $arr['logo'];
}else{
    echo 'Key doesn\'t exist!';
}

你确定你设置$ arr ['logo'] = null,而不是$ arr ['logo'] =''? 对于后者,您也可以检查

if (isset($arr['logo'] && !empty($arr['logo'])){
...
}

答案 3 :(得分:0)

  

但条件代码运行时   没有徽标

您可以构造else子句以采取适当的措施:

if (isset($attachments['logo']))
{
  // logo is set
}
else
{
  // loto is not set
}

或者只是试试这个:

if (array_key_exists('logo', $attachments))
{
    // logo is set
}

array_key_exists

的更多信息

答案 4 :(得分:0)

您可以使用array_key_exists

答案 5 :(得分:0)

你可以这样写:

function md_array_key_exists ($key, $array)
{
    foreach ($array as $item => $val)
    {
        if ($item === $key)
        {
            return true;
        }

        if (is_array ($val))
        {
            if (true == marray_key_exists ($key, $val))
                return true;
        }
    }

    return false;
}