0

我一直在为绝对初学者阅读 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.

为什么我使用$keyand $value?他们在做什么?是从哪里来$person的?我可以命名我想要的其他任何东西吗?

4

4 回答 4

3

只需快速浏览一下文档就foreach可以回答这个问题。

第一个foreach是遍历$people数组的所有元素。数组的每个键都是$name,值(二级数组)是$person

然后在第二个循环中,对于每个人的属性,属性的类型是 ,$key该属性的值是$value

请务必阅读我刚刚提供的手动链接,它比我解释得更好!

于 2012-06-28T15:56:13.160 回答
0

就书籍/课程而言,我用过的最好的东西是自学和网络资源。php.net 包含所有内容的文档,这种方法足以让我通过各种专业设置。当然,这包括在 stackoverflow 上发帖之类的东西。我从来不需要买书或参加课程。当然,这些东西会有所帮助,但我不知道有什么特别的灵丹妙药解决方案。

在您的示例中,PHP 不需要首先在其他地方声明 foreach 循环中使用的变量。在您的示例中, foreach 循环中的第一个变量people是要循环的数组。然后你有关键字as,然后是将在循环内用于数组中每个条目的变量。如果需要,您可以将该变量指定为key => value而不是仅value.

阅读 PHP 文档。当你不明白的时候提出问题。

于 2012-06-28T15:58:41.533 回答
0

键是“杰森”部分,值是您放入其中的数组。此外,在 Value 数组中,您的 $key 和 $value 分别为 'gender' 和 'male'。

Foreach 循环允许您首先访问每个父级数组,即“Jason”、“Carly”部分,让您可以访问这些键中的每个值。在这种情况下,您将另一个数组传递到其中,因此嵌套的 foreach 循环会将这些值中的每一个分配给 $key => $value。

至于阅读,在谷歌搜索“多维数组教程 PHP”,你会发现很多资源可供阅读。这就是我更多地了解 MD 阵列的方式。

祝你好运,我希望这会有所帮助!

于 2012-06-28T16:01:07.240 回答
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' 不是键,'gender' 和 'hair' 是键,存储在$key和它们的值“男性”和“棕色”分别存储$value

$person记录1是'Jason',('Jason')的第一个$key$person'gender'并且该键的值是'male',即$value

于 2012-06-28T16:15:48.150 回答