2010-05-10 47 views
1

我怎樣才能檢查標誌存在於該陣列稱爲$附着物的print_r低於:PHP如果數組鍵多維陣列內部存在

陣列( [徽標] => /家庭/ richar2 /的public_html/ioagh /images/stories/jreviews/20100510115659_1_img.gif )

即使世界上沒有標誌,陣列的print_r的

陣列()

我想:如果 (isset($附件[ '標誌'])){..} 但有條件代碼時沒有標誌

回答

1

這是非常STANGE是isset()函數不工作,我敢肯定它應該。也許你在代碼的其他地方有問題。

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

+1

從例如#2 PHP array_key_exists頁: 「isset()函數不返回TRUE的數組鍵那對應於一個NULL值,而array_key_exists()做。「 http://php.net/manual/en/function.array-key-exists.php – 2012-12-29 23:18:28

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

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

你確定你設置$常用3 [ '標誌'] = NULL,而不是$常用3 [ '標誌'] = ''? 對於後者,你也可以檢查

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

如果是這種情況($ arr ['logo'] =''),您應該使用empty()來檢查if $ arr ['logo']被設置爲非空值。 – MartinodF 2010-05-10 11:14:49

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