Php 你能给我澄清一下每一个问题吗
我不能理解foreach操作符。 我离开这个世界时可能是无知的。当然,我读过新手教程和示例,但如果有一个多一点的论点,那么对我来说就是一个黑匣子。。。因此,今天我有如下数据来源:Php 你能给我澄清一下每一个问题吗,php,foreach,Php,Foreach,我不能理解foreach操作符。 我离开这个世界时可能是无知的。当然,我读过新手教程和示例,但如果有一个多一点的论点,那么对我来说就是一个黑匣子。。。因此,今天我有如下数据来源: Array ( [error] => [warning] => [status] => 0 [fields] => Array ( [0] => content ) [attrs] => Array ( [path] => 7 ) [matches] => Array (
Array ( [error] => [warning] => [status] => 0 [fields] => Array ( [0] => content ) [attrs] => Array ( [path] => 7 ) [matches] => Array ( [1] => Array ( [weight] => 1319 [attrs] => Array ( [path] => /home/test1.txt ) ) [2] => Array ( [weight] => 1319 [attrs] => Array ( [path] => /home/test2.txt ) ) [3] => Array ( [weight] => 1319 [attrs] => Array ( [path] => /home/test3.txt ) ) ) [total] => 3 [total_found] => 3 [time] => 0.000 [words] => Array ( [test1] => Array ( [docs] => 3 [hits] => 3 ) ) )
我找到了合适的样品
foreach ( $result["matches"] as $ID => $info ) {
echo $ID." "; print_r($info); echo "<br>";
}
1 Array ( [weight] => 1319 [attrs] => Array ( [path] => /home/test1.txt ) )
2 Array ( [weight] => 1319 [attrs] => Array ( [path] => /home/test2.txt ) )
3 Array ( [weight] => 1319 [attrs] => Array ( [path] => /home/test3.txt ) )
}
foreach($result[“matches”]作为$ID=>$info){
echo$ID.“”;print_r($info);echo“
”;
}
1个数组([weight]=>1319[attrs]=>Array([path]=>/home/test1.txt))
2个数组([weight]=>1319[attrs]=>Array([path]=>/home/test2.txt))
3个数组([weight]=>1319[attrs]=>Array([path]=>/home/test3.txt))
}
我无法理解它是如何工作的
/home/test1.txt
/home/test2.txt
/home/test3.txt
as的左边部分是foreach的“输入”:通常是一个或一个对象/类
右侧部分($ID=>$info
)是格式为$key=>$value
的“输出”。如何命名右侧的2个变量完全取决于您,只要您稍后在循环中使用相同的名称
在普通句子中,foreach的语法类似于:
//For each (item of that) group give me it's key and a copy of the item
foreach( $array as $key => $value) {
}
请这样描述:
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一种形式在数组_表达式给出的数组上循环。在每次迭代中,当前元素的值被分配给$value,并且内部数组指针前进一个(因此在下一次迭代中,您将看到下一个元素)
第二个表单将在每次迭代中额外地将当前元素的键分配给$key变量
“as”的左边部分是foreach的“输入”:通常是一个数组或一个iterable对象/类。右侧部分是格式为
$key=>$value
的“输出”。因此,如何命名右侧的两个变量完全取决于您,只要您稍后在循环中使用相同的名称。as$ID
类似于$ID=
,因此您可以使用任何您想要的变量名,因为值将分配给新变量$ID
。@Jeff回答了第一个问题。第二种方法是使用echo($info['attrs']['path])代码>而不是打印($info)代码>。谢谢大家!现在我看到任何变量都会得到值!现在清楚了。代码也很有用!