2

我正在尝试使用单个 foreach 循环生成 url 来回显两个数组的所有变量。一些编码示例将受到尊重。

到目前为止我有这个:

<?php
foreach($menu_names as $menu_name){
echo "<li><a href='?subj= " .urlencode($subjects["id"]). " '>".$menu_name."</a></li>";
}
?>

我想在这个循环中再添加一个数组

4

4 回答 4

9

假设您在这两个数组中有相同数量的项目。

如果要使用foreach(),则数组需要具有相同的索引:

foreach ($a as $index => $value)
{
    echo $a[$index] .' '. $b[$index];
}

如果数组有数字索引,你可以使用for()

for ($i = 0; $i < sizeof($a); $i++)
{
    echo $a[$i] .' '. $b[$i];
}
于 2012-04-26T02:30:25.817 回答
4

array_combine()会将您的 2 个数key=>value组合并为一个数组,然后通过 foreach 语句访问它们,例如

foreach(array_combine($a,$b) as $key=>$value) {
    echo $key."<br/>".$value;
}
于 2014-01-20T10:03:07.190 回答
2

答案取决于您究竟需要对数组做什么以及您需要如何去做。

如果您的数组具有相似的索引,并且您需要使用每个数组中的相同元素,您可以这样做

foreach ($array1 as $index => $value1) {
    $value2 = $array2[$index];
    // do stuff with $value1 and $value2 here
}

(虽然在这种情况下,特别是如果您发现自己经常这样做,您可能需要考虑使用对象或数组的单个数组,以便数据始终在一起并且更容易连接。)

或者,如果数组中包含相同类型的元素,并且您想按顺序遍历两者,则可以遍历array_merge($array1, $array2). (但是,如果数组没有数字索引,特别是如果它们具有相同的字符串键,则数组的一个元素可以替换另一个。有关详细信息,请参阅文档array_merge。)

还有很多其他的可能性,这取决于您需要元素的方式。(这个问题确实没有提供任何信息。)

于 2012-04-26T02:22:35.907 回答
1

完整代码:

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 />";
}
?>
于 2013-03-28T09:09:17.660 回答