2017-02-21 65 views
-2

我想迭代陣列的trought數組。 我有:陣列的PHP數組得到正確的結果

$params = [ 
'regs' => [156, 154, 138, 132, 142, 144], 
'axis' => [0, 0, 0, 0, 0, 0], 
'visible' => [1, 1, 0, 1, 0, 0], 
'dependencies' => [1, 1, 1, 1, 1, 1], 
]; 

我想什麼:

foreach() { 
foreach() { 
    render_element(reg = 156, axis = 0, visible = 1, dep = 1); 
    *render_element(reg = 154, axis = 0, visible = 1, dep = 1); 
    *render_element(reg = 138, axis = 0, visible = 0, dep = 1); etc 
} 
} 
+1

你甚至懶得檢查如何在foreach循環工作?你嘗試了什麼,什麼不起作用?另外,所有的子陣列總是有相同的長度? http://php.net/manual/en/control-structures.foreach.php – domsson

+0

你能描述一下你試圖達到的要求嗎?你已經嘗試了什麼?你得到了哪些錯誤信息? – JeromeFr

回答

3

您可能想迭代第一個regs數組,並使用相同的鍵來打印其他數組中的值,因爲鍵看起來相同,如下所示

foreach($params['regs'] as $key => $val) { 
    echo 'render_element(reg ='. $val.', axis ='. $params['axis'][$key].', visible ='. $params['visible'][$key].', dep ='.$params['dependencies'][$key].');' . "\n"; 
} 

這將打印

render_element(reg =156, axis =0, visible =1, dep =1); 
render_element(reg =154, axis =0, visible =1, dep =1); 
render_element(reg =138, axis =0, visible =0, dep =1); 
render_element(reg =132, axis =0, visible =1, dep =1); 
render_element(reg =142, axis =0, visible =0, dep =1); 
render_element(reg =144, axis =0, visible =0, dep =1); 

live demo

+0

你可以用 'for($ i = 0; $ i Loko

+0

是的,你也可以這樣做 – Fabio

+0

謝謝!只是不能打敗那個簡單的東西:( – MaoStream

0

如果您確信,在PARAMS所有陣列具有相同的長度,你可以使用普通的for循環:

for($i=0; $i<count($params["regs"]); ++$i) 
{ 
    render_element($params["regs"][i], 
    $params["axis"][i], 
    $params["visible"][i], 
    $params["dependencies"][i]) 
}