2015-12-24 2 views
1

Я использую три разных массивов одинаковой длины, они заполняются значениями во время цикла Еогеасп:PHP многомерный массив Еогеасп

foreach(......) 
    { 
    $array1[]=value1; 
    $array2[]=value2; 
    $array3[]=value3; 
    } 

Затем эти массивы должны быть вторит:

$i = 0; 
while($i < count($array1)) 
    { 
    echo $array1[i]; 
    echo $array2[i]; 
    echo $array3[i]; 
    $i++; 
    } 

Is есть ли более элегантный способ для этого, например, цикл foreach - многомерный массив?

+0

Вы можете использовать 'foreach' на любом из ваших массивов и получить ключ, а также:' Еогеасп ($ array1, как $ ключ => $ value) ', и вы уже имеете свое первое значение и ключ для значений в других массивах. Но я бы, вероятно, использовал только один массив для хранения всех данных. – jeroen

+1

попробуйте 'array_map' или' array_walk' или 'array_walk_recursive' эти функции помогут вам достичь этого. –

+0

вы можете завершить foreach (.....)? что скрывает точки? – MTroy

ответ

0

Если предположить, что массивы:

$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($i < count($array1)) 

следует заменить

$count = count($array1); 
while($i < $count) 
0

Вы можете сделать это? Вероятно, создайте фактический класс, но 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; 
} 

Все еще не очень изящный, но не уродливый цикл.

+1

Вы можете вытащить этот объект из 'foreach' и использовать его экземпляр в' foreach'. – Shafizadeh

Смежные вопросы