[英]WHY does it work? PHP foreach multidimensional arrays
我一直在為絕對初學者閱讀PHP。 這本書讓我習慣了一些東西,但是並沒有真正解釋這些東西的工作方式和原因。
任何人都可以推薦一本書/課程,不僅可以向我展示如何,而且為什么也可以向我展示?
敵人的例子:
$people = array(
'Jason' => array('gender'=> 'male', 'hair'=> 'brown'),
'carly' => array('gender'=> 'female', 'hair'=>'blonde'),
);
foreach ($people as $name => $person){
foreach($person as $key => $value){
echo "$name's $key is $value. <br />";
}
}
// Output:
// Jason's gender is male.
// Jason's hair is brown.
// carly's gender is female.
// carly's hair is blonde.
為什么我使用$key
和$value
? 他們在做什么? $person
來自哪里? 我能說出我想說的其他名字嗎?
就書籍/課程而言,我使用過的最好的東西是自學和網絡資源。 php.net擁有有關所有內容的文檔,這種方法已經足夠讓我通過各種專業設置。 當然,這包括在stackoverflow上發布之類的東西。 我從來不需要買書或學習課程。 這些東西當然可以提供幫助,但是我不知道有任何特殊的魔術解決方案。
在您的示例中,PHP不需要先將foreach循環中使用的變量聲明為其他位置。 foreach循環中的第一個變量(您的示例中的people
是要循環的數組。 然后,您有一個關鍵字as
,然后是將在循環內為數組中的每個條目使用的變量。 如果需要,可以將變量指定為key => value
而不是value
。
閱讀PHP文檔。 不了解的時候問問題。
密鑰是“ Jason”部分,值是您要放入其中的數組。 此外,在Value數組中,您分別有一個$ key和$ value分別為'gender'和'male'。
Foreach循環允許您首先訪問每個父級數組,即“ Jason”,“ Carly”部分,從而可以訪問這些鍵內的每個值。 在這種情況下,您要向其中傳遞另一個數組,因此嵌套的foreach循環會將每個這些值分配給$ key => $ value。
就閱讀而言,在Google上搜索“多維數組教程PHP”,您會發現許多可供閱讀的資源。 這就是我如何了解有關MD陣列的更多信息。
祝您好運,希望對您有所幫助!
從后到前開始:
我能說出我想說的其他名字嗎?
是的,您可以擁有,與$key
和$value
$ person來自哪里?
$person
來自$people
,解釋如下:
$people as $name => $person
這基本上是說獲取$people
的當前記錄並將密鑰(Jason在第一條記錄中)存儲在變量$name
並將其值(第一行中的array('gender'=> 'male', 'hair'=> 'brown')
)存儲為$person
為什么要使用$ key和$ value? 他們在做什么?
$key
和$value
可以使用任何有效的變量名命名,第二個foreach
循環的作用與第一個相同,只不過鍵名是“ gender”和“ hair”而不是“ Jason”存儲在$key
,其值“ male”和“ brown”分別存儲在$value
例如,記錄1的$person
是'Jason', $person
的第一個$key
('Jason')是'gender',並且該密鑰的值是'male',即$value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.