簡體   English   中英

PHP多維數組foreach

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM