Trying to combine two arrays first array

$begin = mktime(0, 0, 0, date('m'), 1, date("Y")); $end = mktime(0, 0, 0, date('m'), date("t"), date("Y")); $day = array(); for($i = $begin; $i <= $end; $i += 86400) { if(date("w", $i) != 0 && date("w", $i) != 6) $day[] = array( 'label' => date("Ymd", $i) ); } 

I get an array of this type

 Array ( [0] => Array ( [label] => 2017-03-01 ) [1] => Array ( [label] => 2017-03-02 ) [2] => Array ( [label] => 2017-03-03 ) [3] => Array ( [label] => 2017-03-04 ) [4] => Array ( [label] => 2017-03-05 ) [5] => Array ( [label] => 2017-03-06 ) [6] => Array ( [label] => 2017-03-07 ) [7] => Array ( [label] => 2017-03-08 ) [8] => Array ( [label] => 2017-03-09 ) [9] => Array ( [label] => 2017-03-10 ) [10] => Array ( [label] => 2017-03-11 ) [11] => Array ( [label] => 2017-03-12 ) [12] => Array ( [label] => 2017-03-13 ) [13] => Array ( [label] => 2017-03-14 ) [14] => Array ( [label] => 2017-03-15 ) [15] => Array ( [label] => 2017-03-16 ) [16] => Array ( [label] => 2017-03-17 ) [17] => Array ( [label] => 2017-03-18 ) [18] => Array ( [label] => 2017-03-19 ) [19] => Array ( [label] => 2017-03-20 ) [20] => Array ( [label] => 2017-03-21 ) [21] => Array ( [label] => 2017-03-22 ) [22] => Array ( [label] => 2017-03-23 ) [23] => Array ( [label] => 2017-03-24 ) [24] => Array ( [label] => 2017-03-25 ) [25] => Array ( [label] => 2017-03-26 ) [26] => Array ( [label] => 2017-03-27 ) [27] => Array ( [label] => 2017-03-28 ) [28] => Array ( [label] => 2017-03-29 ) [29] => Array ( [label] => 2017-03-30 ) [30] => Array ( [label] => 2017-03-31 ) 

)

second array from base

  Array ( [0] => Array ( [value] => 1 [order_status_id] => 1 [date_added] => 2017-03-18 ) [1] => Array ( [value] => 1 [order_status_id] => 1 [date_added] => 2017-03-21 ) 

)

How to make the dates be displayed in order,

example

  Array ( [18] => Array ( [label] => 2017-03-18 [value] => 1 ) [20] => Array ( [label] => 2017-03-21 [value] => 1 )............ 

So the whole array and value was only where the dates match

  • use group by - DNS
  • You have indicated the MySQL tag. What does the question have to do with this DBMS? - Mike

1 answer 1

Found solutions can someone come in handy

  $begin = mktime(0, 0, 0, date('m'), 1, date("Y")); $end = mktime(0, 0, 0, date('m'), date("t"), date("Y")); $day = array(); $format_day = array(); for($i = $begin; $i <= $end; $i += 86400) { $day[] = array( 'label' => date("Ymd", $i), ); $format_day[] = array( 'label' => date("d/m", $i) ); } // new $array_date = $day; // второй массив из базы $orders_status_new = $this->model_account_order->getOrdersCountStatusNew(); $array_new = array(); foreach ($orders_status_new as $status_order){ $array_new[] = array( 'value' => $status_order['order_status_id'], 'label' =>$status_order['date_added'] ); } foreach($array_date as $index => $value){ $array_date[$index]['value'] = null; } $searchArray = array_column($array_date,'label'); foreach($array_new as $value){ $key = array_search($value['label'],$searchArray); if(!$key){ echo sprintf("value %s not found<br/>",$value['label']); continue; } $array_date[$key]['value']=$value['value']; } echo "<pre>"; print_r($array_date);