2017-06-16 77 views
-1

如何在我的代碼中使用foreach這個數組? 下面是我的代碼如何從foreach中創建數組?

Array 
(
    [0] => Array 
     (
      [day] => 2016-11-21 
     ) 

    [1] => Array 
     (
      [day] => 2016-11-22 
     ) 

    [2] => Array 
     (
      [day] => 2016-11-23 
     ) 

    [3] => Array 
     (
      [day] => 2016-11-24 
     ) 

    [4] => Array 
     (
      [day] => 2016-11-25 
     ) 
) 

下面是我的代碼,但結果是不同的。結果是從foreach,我想要的是做一個數組就像上面的數組。

foreach ($data['my_undertime'] as $undertime_row) { 

     $datetimein = new DateTime($undertime_row->timein); 
     $datetimein->format('h:m:s'); 

     $datetimeout = new DateTime($undertime_row->timeout); 
     $datetimeout->format('h:m:s'); 

     $items = array(); 

     if ($datetimein->format('h:m:s') > $undertime_row->beg_time && $datetimeout->format('h:m:s') < $undertime_row->end_time) { 
      // echo $undertime_row->day; 

      $items[]['day'] = $undertime_row->day; 
     } 

     echo "<pre>"; 
     print_r($items); 


    } 
+2

爲什麼這個問題標記'sql'? – arkascha

+0

因爲它涉及操縱數據庫中的數據。不過,我同意也許將它標記爲SQL並不適用於此。 –

回答

0
$items = array(); 
$i = 0; 
foreach ($data['my_undertime'] as $undertime_row) { 

     $datetimein = new DateTime($undertime_row->timein); 
     $datetimein->format('h:m:s'); 

     $datetimeout = new DateTime($undertime_row->timeout); 
     $datetimeout->format('h:m:s'); 



     if ($datetimein->format('h:m:s') > $undertime_row->beg_time && $datetimeout->format('h:m:s') < $undertime_row->end_time) { 
      // echo $undertime_row->day; 

      $items[$i]['day'] = $undertime_row->day; 
     } 
$i++; 



    } 
     echo "<pre>"; 
     print_r($items); 

試試這個

+0

Undertime 陣列 ( [0] =>數組 ( [天] => 2016年11月21日 ) ) 陣列 ( [0] =>數組 ( [天] => 2016年11月21日 ) [1] =>數組 ( [天] => 2016年11月22日 ) ) 陣列 ( [0] =>數組 ( [天] => 2016年11月21日 ) [1] =>數組 ( [天] => 2016年11月22日 ) [2] =>數組 ( [天] => 2016-11-23 ) )這是結果先生,它越來越接近 –

+0

嘗試編輯ans @vincentvillafuerte – Exprator

+0

不是一個問題兄弟,我浪費了很多時間你的,對不起,我沒有檢查它早些時候關於循環和數組初始化 – Exprator

1

問題出在線$items = array();

現在,每個循環都會重新創建$item。在foreach之後,它最終只記住循環的最後一次迭代。

如果你想保留的所有數據,然後$item的循環foreach前移到這行代碼