PHP Array re-arrange to Multi Dimensional -


i have array structure , wanted re-arrange 1 below. suggestions faster/simple fix? did addition of dates. thanks! :)

input:

array (     [0] => array         (             [user_id] => 255             [display_name] => mark             [company_name] => company_a         )     [1] => array         (             [user_id] => 150             [display_name] => paul             [company_name] => company_a         )     [2] => array         (             [user_id] => 25             [display_name] => hulk             [company_name] => company_b         )     [3] => array         (             [user_id] => 50             [display_name] => bob             [company_name] => company_b         ) ) 

output:

array (     [company_a] => array         (             [company_total_hours] => 20h 45m             [employees] => array                 (                     [0] => array                         (                             [user_id] => 255                             [display_name] => mark                         )                     [1] => array                         (                             [user_id] => 150                             [display_name] => paul                         )                 )         )     [company_b] => array         (             [company_total_hours] => 7h 30m             [employees] => array                 (                     [0] => array                         (                             [user_id] => 25                             [display_name] => hulk                         )                     [1] => array                         (                             [user_id] => 50                             [display_name] => bob                         )                 )         ) ) 

my attempts:

<?php $company_names = array(); foreach ($records $k => $v) {     $company_names[] = $v->company_name; } $company_names = array_unique($company_names);  // hard coded testing if (count($company_names) > 0) {     foreach($company_names $k2 => $v2) {         $final_array[$v2]['company_total_hours'] = rand(1, 20);          $final_array[$v2]['employees'] = array(             array('user_id' => '255', 'display_name' => 'mark'),             array('user_id' => '150', 'display_name' => 'paul')         );     } }  // on-going testing right here.... 

i don't see derive hours left out.

$i = 0; foreach($vals $keys => $arrays) {         if(!isset($new[$arrays['company_name']]))             $i = 0;         $new[$arrays['company_name']]['employees'][$i]['display_name']  =   $arrays['display_name'];         $new[$arrays['company_name']]['employees'][$i]['user_id']       =   $arrays['user_id'];         $i++;     } 

gives you:

array (     [company_a] => array         (             [employees] => array                 (                     [0] => array                         (                             [display_name] => mark                             [user_id] => 255                         )                      [1] => array                         (                             [display_name] => paul                             [user_id] => 150                         )                  )          )      [company_b] => array         (             [employees] => array                 (                     [0] => array                         (                             [display_name] => hulk                             [user_id] => 25                         )                      [1] => array                         (                             [display_name] => bob                             [user_id] => 50                         )                  )          )  ) 

Comments

Popular posts from this blog

apache - PHP Soap issue while content length is larger -

asynchronous - Python asyncio task got bad yield -

javascript - Complete OpenIDConnect auth when requesting via Ajax -