我希望通過指數像這樣訪問assocative數組項通過索引
$arr = Array(
['mgm19'] => Array(
['override'] => 1
)
);
$override1 = $arr['mgm19']['override'];
$override2 = $arr[0]['override'];
訪問關聯數組的信息,但我從override2爲什麼得到什麼?
我希望通過指數像這樣訪問assocative數組項通過索引
$arr = Array(
['mgm19'] => Array(
['override'] => 1
)
);
$override1 = $arr['mgm19']['override'];
$override2 = $arr[0]['override'];
訪問關聯數組的信息,但我從override2爲什麼得到什麼?
因爲$arr
只有一個索引mgm19
。沒有什麼與索引0
相關聯。如果你不知道該指數或不想使用它,使用foreach
:
foreach($arr as $value) {
echo $value['override'];
break; /* breaking so that we only read the first value of the array */
}
我會看一下這個功能,http://www.php.net/manual/en/function.array-values.php這看起來可能是有益的:)
php.net/manual/en/language.types.array.php「索引和關聯數組類型在PHP中是相同的類型,它們都可以包含整數和字符串索引。」我可能是錯的,但這並不意味着它應該已經包含一個數字索引?
不,它是說你可以同時使用數字和字符串標記,而不是你可以使用一個或另一個訪問它們。記住一個關鍵是獨一無二的價值標識,如果你允許使用數量或使用數組中的數字位置,你不能訪問它們的字符串,採取下列數組:
$arr = Array(
[mgm19] => Array(
[override] => 1
),
[0] => Array(
[override] => 1
)
);
我們是可以將混合數據類型作爲關鍵字,並且您無法訪問[mgm19]
作爲[0]
的原因是因爲這不是它的關鍵。
我希望這是有道理的:P
是的,它的確如此!我也是這麼想的,但是當我閱讀手冊時並不確定! – 2010-06-29 15:01:45
$arr = Array(
['mgm19'] => Array(
['override'] => 1
)
);
$override1 = $arr['mgm19']['override'];
$arrkeys = array_keys($arr);
$override2 = $arr[$arrkeys[0]]['override'];
我更喜歡這個解決方案 – mcgrailm 2010-06-29 15:22:58
http://php.net/manual/en/language.types.array.php 「的索引和關聯數組類型在PHP相同的類型,它可以同時包含整數和字符串索引」。 我可能是錯的,但這並不意味着它應該已經包含一個數字索引? – 2010-06-29 14:42:41
好吧,那麼我如何重寫,如果不mgm19是動態的,我不知道它會是什麼? – mcgrailm 2010-06-29 14:43:46
@DavidYell:不,它表示索引可以是0,可以是'mgm19'。這裏唯一的指標是'mgm19'。 @mcgrailm:看到我已完成的答案 – Alsciende 2010-06-29 14:45:21