把foreach放在foreach里面

时间:2012-02-03 17:08:12

标签: php

我正在尝试使用foreach循环某个数组。 这是演示我正在做的事情的代码:

 $arr1=array("32,45,67,89");
    $arr2=array("5,3,2,1");

    foreach($arr1 as $key => $val){
      foreach($arr2 as $key2 =>$val2){
         echo $val."-".$key2."-".$val2;
        }
}

然而,这输出

  

32-0-5

     

32-1-3

     

32-2-2

     

32-3-1

我希望将其显示为

  
    

32-1-5

         

45-2-3

         

67-3-2

         

89-3-1

  

我该如何解决这个问题?由于我是初学者,我不知道该怎么做。

5 个答案:

答案 0 :(得分:6)

你不想循环第二个数组,你只想在某个位置获取值。试试这样:

foreach($arr1 as $key => $val){
  $val2 = $arr2[$key];
  echo $val."-".($key+1)."-".$val2;
}

答案 1 :(得分:1)

我假设你正在做一个双重foreach,因为你真的想要打印4 * 4 = 16行。我还假设你错误输入了最后一行,你有3而不是4。

只需使用($ key2 + 1)就可以了吗?

$arr1=array("32,45,67,89");
$arr2=array("5,3,2,1");

foreach($arr1 as $key => $val){
  foreach($arr2 as $key2 =>$val2){
     echo $val."-" . ($key2+1) . "-".$val2;
  }
}

答案 2 :(得分:0)

不要嵌套循环;

使用一个循环并打印array1 [i]。" - " .array2 [i]

答案 3 :(得分:0)

您也可以使用for循环而不是foreach:

$arr1=array(32,45,67,89);
$arr2=array(5,3,2,1);    
for ($i = 0; $i < 4; $i++) {
    echo $arr1[$i] . "-" . ($i+1) . "-" . $arr2[$i];
}

答案 4 :(得分:0)

$i<count ($arr1)计算数组中元素的数量。 然后一旦它结束就停止。

如果每个数组中都有元素的名称编号。这对你很有用,甚至可以动态创建表。

$arr1=array("32,45,67,89");
$arr2=array("5,3,2,1");

for ($i=0; $i<count ($arr1) ; $i++){
echo $arr1[$i] . "-" . $arr1[$i]."-". $arr2[$i] ;

}
相关问题