我正在尝试使用单个 foreach 循环生成 url 来回显两个数组的所有变量。一些编码示例将受到尊重。
到目前为止我有这个:
<?php
foreach($menu_names as $menu_name){
echo "<li><a href='?subj= " .urlencode($subjects["id"]). " '>".$menu_name."</a></li>";
}
?>
我想在这个循环中再添加一个数组
假设您在这两个数组中有相同数量的项目。
如果要使用foreach()
,则数组需要具有相同的索引:
foreach ($a as $index => $value)
{
echo $a[$index] .' '. $b[$index];
}
如果数组有数字索引,你可以使用for()
:
for ($i = 0; $i < sizeof($a); $i++)
{
echo $a[$i] .' '. $b[$i];
}
array_combine()
会将您的 2 个数key=>value
组合并为一个数组,然后通过 foreach 语句访问它们,例如
foreach(array_combine($a,$b) as $key=>$value) {
echo $key."<br/>".$value;
}
答案取决于您究竟需要对数组做什么以及您需要如何去做。
如果您的数组具有相似的索引,并且您需要使用每个数组中的相同元素,您可以这样做
foreach ($array1 as $index => $value1) {
$value2 = $array2[$index];
// do stuff with $value1 and $value2 here
}
(虽然在这种情况下,特别是如果您发现自己经常这样做,您可能需要考虑使用对象或数组的单个数组,以便数据始终在一起并且更容易连接。)
或者,如果数组中包含相同类型的元素,并且您想按顺序遍历两者,则可以遍历array_merge($array1, $array2)
. (但是,如果数组没有数字索引,特别是如果它们具有相同的字符串键,则数组的一个元素可以替换另一个。有关详细信息,请参阅文档array_merge
。)
还有很多其他的可能性,这取决于您需要元素的方式。(这个问题确实没有提供任何信息。)
完整代码:
1)
<?php
$First = array('a', 'b', 'c', 'd');
$Second = array('1', '2', '3', '4');
foreach($First as $indx => $value) {
echo $First[$indx].$Second[$indx];
echo "<br />";
}
?>
或 2)
<?php
$First = array('a', 'b', 'c', 'd');
$Second = array('1', '2', '3', '4');
for ($indx = 0 ; $indx < count($First); $indx ++) {
echo $First[$indx] . $Second[$indx];
echo "<br />";
}
?>