2010-05-13 78 views
1

如果我有這樣的數組:PHP如何正確檢查,如果數組是多維的 - 怪陣行爲

$foo[0] = 'bar'; 
$foo[1] = 'bar bar'; 

echo $foo[0][1]; 

// result 
a 
// i.e the second letter of 'bar' 

我要檢查$ foo的[0] [1]未設置即如果我有:

$foo[0][1] = 'bar'; 

它會評估爲true,但在我原來的$ foo的例子[0] = '酒吧' 我預計:

isset($foo[0][1]) 

會返回false;

什麼是正確的方式來測試請。

回答

7

PHP沒有多維數組。它有數組的數組。瞭解其差異很重要。

你需要做的:

if (is_array($foo[0]) && isset($foo[0][1])) { 
    ... 
} 
0

DOH

它 - >

array_key_exists($foo[0][1]); 

我仍然困惑,爲什麼PHP認爲$ foo的[0] [1]設置雖然...

0

通過使用$ foo的[0] [1],實際上您訪問字符串$ foo的第一個字符[0]。