2014-10-04 64 views
0

這個數組是我推入到這個數組的過程的產物,當我使用嵌套的foreach並回顯它時,它給了我所有的值。如何使用foreach

foreach ($arr as $key) { 
     foreach ($key as $keys => $values) { 
      echo $values; 
     } 

我的問題是如何在變量分配,以便我能區分其所屬

Array 
(
    [logs] => Array 
     (
      [0] => 2014-09-22 01:24:56 
      [1] => 2014-09-22 10:53:35 
      [2] => 2014-09-22 07:49:45 
      [3] => 2014-09-22 06:49:29 
     ) 

    [fullname] => Array 
     (
      [0] => DORIS JOHNSON 
      [1] => JOHN DOE 
      [2] => JOHN DOE 
      [3] => JOHN DOE 
     ) 

    [id] => Array 
     (
      [0] => 785739 
      [1] => 404150 
      [2] => 404150 
      [3] => 404150 
     ) 

    [misc] => Array 
     (
      [0] => Etc 
      [1] => Other 
      [2] => Etc 
      [3] => Etc 
     ) 

    [status] => Array 
     (
      [0] => MARRIED 
      [1] => SINGLE 
      [2] => SINGLE 
      [3] => SINGLE 
     ) 

) 

我需要和使用按鍵作爲變量 一樣,如果我需要它輸出。

echo $logs; 
echo $fullname; 
echo $id; 
echo $misc; 
echo $status; 

預期輸出:

2014-09-22 01:24:56 | DORIS JOHNSON | 785739 | Etc | MARRIED 

2014-09-22 10:53:35 | JOHN DOE | 404150 | Other | SINGLE 

and soon... 
+0

的可能的複製[如何 '的foreach' 實際工作(http://stackoverflow.com/questions/10057671/how-foreach-actually-works)和[如何使用的foreach循環遍歷數組PHP] (https://stackoverflow.com/questions/3027719/how-can-use-foreach-to-loop-through-php-array)。 – jww 2014-10-04 04:09:46

+2

你的數組結構有點奇怪。你不應該爲每個數組中的每個記錄保存不同的元素,每個數組包含一個新記錄嗎?與其合作會更容易。 – 2014-10-04 04:15:09

回答

0

你可以不喜歡它

foreach ($arr['logs'] as $key => $val) {   
    //make a new index and put related elements into it 
    $arr['result'][$key] = array(); 
    array_push($arr['result'][$key], $arr['logs'][$key], $arr['fullname'][$key], $arr['id'][$key], $arr['misc'][$key]); 
} 

foreach($arr['result'] as $val) { 
    //loop through the new index and echo the result in provided format 
    echo implode(" | ",$val)."<br/>"; 
} 
1

簡單和很好的方式 '旋轉' 陣列,而不foreach循環

array_unshift($arr, null); 
$arr = call_user_func_array('array_map', $arr); 

而且而不是僅僅輸出你想要的。

foreach($arr as $s) 
    echo join(' | ', $s) . '<br>';