2016-12-22 18 views
0

whileループを使用して次のコードを最適化する方法を探しています。私は4つの配列を持っており、方法。これは正常に動作し、元のコードです:whileループを使用して複数の配列からデータを取得する

$arr1 = array ("55", "66", "77"); 
$arr2 = array ("54", "64", "771"); 
$arr3 = array ("53", "62", "772"); 
$arr4 = array ("52", "60", "773"); 
$x = 1; 
$result = "null"; 

echo $arr1[0] . " | " ; 
echo $arr2[0]. " | " ; 
echo $arr3[0]. " | " ; 
echo $arr4[0]. " | " ; 

フェラは、それを最適化する私の試みですが、それは動作しているようだしない:

$arr1 = array ("55", "66", "77"); 
$arr2 = array ("54", "64", "771"); 
$arr3 = array ("53", "62", "772"); 
$arr4 = array ("52", "60", "773"); 
$x = 1; 
$result = "null"; 

while($x < 5) { 
$result = "$arr".$x."[0]"; 
echo $result; 
echo " | "; 
$x = $x +1; 
} 

私は取得しています出力は 1 [です1] | 2 [1] | 3 [1] | 4 [1]
の代わりに55 | 54 | 53 | 52 |

ありがとうございました!

答えて

4
while($x < 5) { 
    $result = ${"arr".$x}[0]; 
    echo $result; 
    echo " | "; 
    $x++; 
} 

又はすっきり溶液:call_user_func_arrayarray_column関数を使用して

$arr1 = array ("55", "66", "77"); 
$arr2 = array ("54", "64", "771"); 
$arr3 = array ("53", "62", "772"); 
$arr4 = array ("52", "60", "773"); 

for($x=1; $x<5; $x++) { 
    $result = ${"arr".$x}[0]; 
    echo $result." | "; 
} 
+0

' $ { "arr" $ x} 'は自動生成された変数名を呼び出す正しい答えです。上記の例を見てください – mtizziani

1

"1行"溶液:

$result = implode(" | ", call_user_func_array('array_column', [[$arr1, $arr2, $arr3, $arr4], 0])); 

print_r($result); 

出力:

55 | 54 | 53 | 52 
関連する問題