2013-06-11 28 views
0

恥辱問,但我不知道如何echout所有數組的鍵在此的foreach循環:週期中的所有磁盤陣列的鍵

$i=0; 
foreach ($matches as $match) { 
echo $match[$i++]; 
} 

現在結果只是「1」。取而代之的1 2 3 7

Array 
(
    [0] => Array 
     (
      [0] => 1 
      [1] => 2 
      [2] => 3 
      [3] => 7 
     ) 

) 

回答

0

如果$匹配始終是一個單一的元素,你可以走了一條捷徑,並使用一個數組:

foreach ($matches[0] as $match) { 
    echo $match.' '; 
} 

Othewise使用嵌套foreach循環

foreach($matches as $match) { 
    foreach($match as $element) { 
    echo $element.' '; 
    } 
} 
0

那是因爲你的代碼是基本呼應的第一陣列的第一項,第二的第二等,但因爲你只有一個數組中的「主力」之一,它輸出那個單獨的1。雖然這對證明有無限多的實數很有用,但這不是你想要的!

試試這個:

foreach($matches as $match) { 
    echo implode(" ",$match); 
} 
1

你只想陣列鑰匙?使用

array_keys() 

你想循環播放鍵?使用

foreach($array AS $key=>$value){ 
    echo $key.' '; 
} 

你想回顯值嗎?使用:

foreach($array AS $key=>$value){ 
    echo $value.' '; 
} 

否則,您需要解釋您實際嘗試做什麼。

0

您可以使用array_walk_recursive做到這一點。

$array = array(
    array(
    0 => 1, 
    1 => 2, 
    2 => 3, 
    3 => 7 
) 
); 

function print_out($item, $key) { 
    echo "$key = $item\n"; 
} 

array_walk_recursive($array, 'print_out'); 

輸出:

0 = 1 
1 = 2 
2 = 3 
3 = 7