我正在尝试使用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
我该如何解决这个问题?由于我是初学者,我不知道该怎么做。
答案 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] ;
}