數組元素的關鍵是什麼我想知道是否所有的PHP數組都必須有key
s的value
s?我不認爲他們這麼做,所以我的下一個問題是,每個value
的key
是否自動成爲它在陣列中的位置(基於0的索引),否則value
本身將成爲key
?如果我沒有指定
也許這個值根本沒有一個鍵...好奇,因爲如果它沒有一個鍵,我不能從一個foreach
循環內的數組中刪除一個元素。
數組元素的關鍵是什麼我想知道是否所有的PHP數組都必須有key
s的value
s?我不認爲他們這麼做,所以我的下一個問題是,每個value
的key
是否自動成爲它在陣列中的位置(基於0的索引),否則value
本身將成爲key
?如果我沒有指定
也許這個值根本沒有一個鍵...好奇,因爲如果它沒有一個鍵,我不能從一個foreach
循環內的數組中刪除一個元素。
我不知道是否所有的PHP數組必須有他們的價值觀鑰匙?
是的,他們這樣做。
是否針對每個值的鍵自動成爲它的陣列中(基於0的索引)
是位置。如果您沒有明確指定鍵值,則會使用相應的位置(基於0的索引)。
我無法從foreach循環中的數組中刪除元素,如果它沒有鍵的話。
你並不總是需要一個鍵來操作數組。此外,foreach
構造允許您使用陣列中的鍵:foreach ($iterable as $key => $value)
。
我想知道如果所有的PHP數組都必須有他們的值的鍵?
是的。從documentation:
陣列
PHP中的數組實際上是一個有序圖。地圖是一種將值與鍵關聯的類型。
因此,數組的所有元素都必須有一個鍵。
確實爲每個值的鍵自動成爲它的陣列中(基於0的索引)
幾乎正確的位置。如果沒有爲元素指定鍵,那麼鍵將是1 +上一個元素的鍵,其中第一個元素的鍵是0.
我無法從數組中刪除元素一個foreach循環,如果它沒有一個鍵。
實際上存在foreach
語法,該值除了顯示值外還顯示了鍵。從documentation:
foreach構造提供了一種簡單的方法來迭代數組。 foreach僅適用於數組和對象,並且當您嘗試在具有不同數據類型或未初始化變量的變量上使用它時會發出錯誤。有兩種語法:
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
使用後者foreach
語法用於刪除數組元素的一個例子是如下:
// Remove elements from the array that are less than 10
foreach ($array as $key => $value) {
if ($value < 10) {
unset($array[$key]);
}
}
感謝您的額外信息。我只是不確定'$ key => $ value'腳本是否可以工作,因爲我從來沒有指定'key'。 – BestAnswer
有趣的是,如果未指定密鑰,則不會爲其分配密鑰_根據其位置_而是將其添加到最後一個密鑰。 – BestAnswer
是每個值的關鍵是基於0的索引。你可以創建一個數組和var_dump()來查看密鑰。 http://www.php.net/manual/en/language.types.array.php
謝謝沒有足夠的聲望投票了......對不起 – BestAnswer
@edit這就是我在我的代碼中...'foreach($ iterable as $ key => $ value)'' – BestAnswer