我一直在为初学者阅读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
来自哪里?我能说出我想要的任何其他内容吗?
答案 0 :(得分:3)
只需快速浏览documentation on foreach
即可回答此问题。
第一个foreach
循环遍历$people
数组的所有元素。数组的每个键都是$name
,值(第二级数组)是$person
。
然后在第二个循环中,foreach人的属性,属性的类型是$key
,该属性的值是$value
。
请仔细阅读我刚给出的手册链接,它解释得比我好!
答案 1 :(得分:0)
就书本/课程而言,我使用的最好的东西是自学和网络资源。 php.net提供了所有内容的文档,这种方法已经足以让我通过各种专业设置。当然,这包括在stackoverflow上发布的内容。我从来没有必要买书或上课。当然,这些东西可以提供帮助,但我不知道任何特殊的灵丹妙药解决方案。
在您的示例中,PHP不要求首先在其他地方声明foreach循环中使用的变量。 foreach循环中的第一个变量,在您的示例中为people
,是要循环的数组。然后你有关键字as
,然后是在数组中每个条目的循环内使用的变量。如果需要,您可以将该变量指定为key => value
,而不仅仅是value
。
阅读PHP文档。当你不理解时提问。
答案 2 :(得分:0)
Key是'Jason'部分,值是你放在其中的数组。此外,在Value数组中,您分别拥有$ key和$ value的'gender'和'male'。
Foreach循环允许您首先访问每个父级别数组,即“Jason”,“Carly”部分,使您可以访问这些键中的每个值。在这种情况下,您将另一个数组传入其中,因此嵌套的foreach循环会将每个值分配给$ key =&gt; $值。
就阅读而言,在Google上搜索“Multi-Dimensional Array Tutorial PHP”,您会发现许多资源需要阅读。这就是我对M-D阵列的更多了解。
祝你好运,我希望这会有所帮助!
答案 3 :(得分:0)
从后到前:
我能说出我想要的其他内容吗?
是的,您可以拥有,与$key
和$value
$ person来自哪里?
$person
来自$people
,解释如下:
$people as $name => $person
这基本上是说当前记录$people
并将密钥(Jason在第一条记录中)存储在变量$name
并将其值(array('gender'=> 'male', 'hair'=> 'brown')
存储在第一行中)保存为$person
为什么我使用$ key和$ value?他们做了什么?
$key
和$value
只要是有效的变量名就可以命名,第二个foreach
循环与第一个循环相同,只是代替'Jason'作为关键,“性别”和“头发”是关键,存储在$key
中,其值“男性”和“棕色”分别存储在$value
即。记录1的$person
是'Jason',$key
('Jason')的第一个$person
是'性别',该键的值是'male',即{{1} }}