PHP foreach循环示例混乱

Jus*_*tin 13 php foreach

foreachPHP循环的一个例子是

foreach ($row as $key => $value) { 
    // somecode
}
Run Code Online (Sandbox Code Playgroud)

我无法理解你在=>做什么.任何人都可以让我了解它是如何被"看到"或由PHP评估的?什么是操作顺序,分配给什么值$key

是什么让它与以下不同:

foreach ($row as $value) { 
    // somecode
}
Run Code Online (Sandbox Code Playgroud)

我逻辑上我认为$value将赋值的值$key,然后它将被指定为一行$row,但这显然是不正确的...

Cen*_*bit 22

我知道它有点棘手,我在第一次使用它时遇到了解问题.你使用的越多,它就越有意义.

你的数组看起来像这样:

//  "key"   "value"
//    |        |
//    V        V
$row['1'] = 'item1';
$row['2'] = 'item2';
$row['3'] = 'item3';
$row['4'] = 'item4';
Run Code Online (Sandbox Code Playgroud)

键可以是任何东西,它们不需要是数字.这样你就可以遍历数组中的所有项而无需知道密钥!

所以,你的第一个例子可以解释如下:

//         +--- The ARRAY where all of your data is
//         |
//         |       +----- The KEY to access that element of the array
//         |       |
//         |       |        +----- The VALUE of that element
//         |       |        |
//         V       V        V
foreach ($row as $key => $value){
   if($row[$key] == $value){ // this statement is always true
      echo "true AGAIN!";  // and thus will always print this line
   }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,=>它并不是真正的各种操作数,它只是用来完成foreach循环的结构.


lon*_*day 9

PHP数组存储为键和值对:

$arr = array(
    'key1' => 'value1',
    'key2' => 'value2'
);
Run Code Online (Sandbox Code Playgroud)

标准foreach语法只获取值:

foreach ($arr as $value) {
    // value1, value2
}
Run Code Online (Sandbox Code Playgroud)

替代语法也允许您获取键:

foreach ($arr as $key => $value) {
    // $key is "key1", then "key2"
    // $value is "value1" then "value2"
}
Run Code Online (Sandbox Code Playgroud)

请参阅手册条目foreach.


Nan*_*nne 2

这两个示例是相同的,但第一个示例添加了您当前正在查看的键的定义,并将其命名为 $key。

array()定义进行比较,例如array('key' => 'value')

如果您使用第一种方法,则 $key 包含“key”,而在第二个示例中则不包含。