簡體   English   中英

為什么行得通? PHP foreach多維數組

[英]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來自哪里? 我能說出我想說的其他名字嗎?

只需快速瀏覽foreach上的文檔即可回答此問題。

第一個foreach遍歷$people數組的所有元素。 數組的每個鍵都是$name ,值(第二級數組)是$person

然后在第二個循環中,每個人的屬性,屬性的類型為$key ,該屬性的值為$value

請務必閱讀我剛才給的手冊鏈接,它比我解釋的要好得多!

就書籍/課程而言,我使用過的最好的東西是自學和網絡資源。 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM