如何在“单个”foreach()循环中使用多个数组

时间:2012-04-26 02:13:44

标签: php arrays foreach echo

我正在尝试用一个foreach循环制作一个url来回显两个数组的所有变量。一些编码示例将被兑现。

到目前为止,我有这个:

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

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

4 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:4)

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

foreach(array_combine($a,$b) as $key=>$value) {
    echo $key."<br/>".$value;
}

答案 2 :(得分:2)

答案取决于你需要对数组做什么完全以及你需要怎样做。

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

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

(虽然在这种情况下,特别是如果你发现自己这么做了,你可能想要考虑使用一个对象或数组的单个数组,这样数据总是在一起并且更容易连接。)< / p>

或者,如果数组中包含相同类型的元素,并且您希望按顺序迭代它们,则可以迭代array_merge($array1, $array2)。 (但是,如果数组没有数字索引,特别是如果它们具有相同的字符串键,则其中一个数组元素可以替换另一个。请参阅the docs on array_merge了解详细信息。)

根据您对元素的需求,还有很多其他可能性。 (这个问题确实没有提供任何相关信息。)

答案 3 :(得分: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 />";
}
?>
相关问题