簡體   English   中英

php如果數組鍵存在於multidimentional數組中

[英]php if array key exists inside multidimentional array

我如何檢查這個名為$ attachements print_r的數組中是否存在徽標如下:

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

當沒有標識時,數組print_r's

數組()

我試過:if(isset($ attachments ['logo'])){..}但條件代碼在沒有徽標時運行

itset()無法正常工作,我很確定應該這樣做。 也許你的代碼中的其他地方有問題。

無論如何,如果你想嘗試別的東西,有一個特定的功能: array_key_exists()

這符合我的預期:

$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'])){
...
}

但條件代碼在沒有徽標時運行

您可以構造一個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更多信息

您可以使用array_key_exists

你可以這樣寫:

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM