[英]php multidimensional array foreach
我正在使用三个相同长度的不同数组,它们在foreach循环中被值填充:
foreach(......)
{
$array1[]=value1;
$array2[]=value2;
$array3[]=value3;
}
然后必须回显这些数组:
$i = 0;
while($i < count($array1))
{
echo $array1[i];
echo $array2[i];
echo $array3[i];
$i++;
}
有没有更优雅的方法,例如foreach循环和多维数组?
你可以做一个对象吗? 可能创建一个实际的类,但StdClass起作用。
foreach(...)
{
$obj = new StdClass();
$obj->value1 = $value1;
$obj->value2 = $value2;
$obj->value3 = $value3;
$array[] = $obj;
}
foreach($array as $obj)
{
echo $obj->value1;
echo $obj->value2;
echo $obj->value3;
}
仍然不是很优雅,但没有难看的while循环。
假设您的数组:
$a1 = [2,3,4];
$a2 = [6,7,8];
$a3 = [9,10,11];
array_walk($a1, function($v, $k) use($a2, $a3)
{
echo $v;
echo $a2[$k];
echo $a3[$k];
});
或者简单地
foreach($a1 as $k => $v)
{
echo $v;
echo $a2[$k];
echo $a3[$k];
}
注意:
您永远不要在while条件中放置一个计数,因为它将要求每次迭代! 没有优化
while($i < count($array1))
应该由
$count = count($array1);
while($i < $count)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.