2017-01-02 26 views
0

我想在这些数值上使用键将两个数组连接到同一级别(进入一个新数组)。到目前为止已经试过这样:在php codeigniter中使用数组引用

$car_all_attributes = array(); 
      foreach ($cars_without_price as $key => $cars) 
      { 
       $keep_fare = 0; 
       $i = 0; 
       foreach ($data['cars_fare'] as $f_key => $fare) 
       { 
        $c_fare = (explode("-",$fare)); 
        if ($c_fare[0] == $cars->chauffeur_id) 
        { 
         $car_fare = $c_fare[1]; 
         $car_all_attributes[$f_key]['old_price'] = $car_fare; 
         $car_all_attributes[$f_key][$key] = $cars; 
         $i++; 
        } 
       } 
      } 

,并导致我得到的是小关,我想它做的,结果我得到的是:

Array 
(
[0] => Array 
    (
     [old_price] => 460 
     [0] => stdClass Object 
      (
       [chauffeur_id] => 16 
       [chauffeur_avalibality] => 1 
       [chauffeur_supplier_id] => 1 
       [chauffeur_country_id] => 190 
       [chauffeur_city_id] => 0 
       [chauffeur_make] => Mercedes S 350 or similar 
       [chauffeur_model] => 
       [chauffeur_car_type] => 2 
       [chauffeur_transmission] => 
       [chauffeur_door] => 4 
       [chauffeur_passengers] => 5 
       [chauffeur_large_suitecase] => 4 
       [chauffeur_small_suitecase] => 5 
       [chauffeur_ac] => 1 
       [chauffeur_img] => carType_145851015451.jpg 
       [chauffeur_service_chaufer] => 1 
       [chauffeur_service_airport] => 0 
       [deleted] => 0 
      ) 

    ) 

[1] => Array 
    (
     [old_price] => 352 
     [1] => stdClass Object 
      (
       [chauffeur_id] => 17 
       [chauffeur_avalibality] => 1 
       [chauffeur_supplier_id] => 1 
       [chauffeur_country_id] => 190 
       [chauffeur_city_id] => 0 
       [chauffeur_make] => Mercedes E-Class or similar 
       [chauffeur_model] => 
       [chauffeur_car_type] => 1 
       [chauffeur_transmission] => 
       [chauffeur_door] => 4 
       [chauffeur_passengers] => 4 
       [chauffeur_large_suitecase] => 4 
       [chauffeur_small_suitecase] => 4 
       [chauffeur_ac] => 0 
       [chauffeur_img] => carType_145851017815.jpg 
       [chauffeur_service_chaufer] => 1 
       [chauffeur_service_airport] => 0 
       [deleted] => 0 
      ) 

    ) 

[2] => Array 
    (
     [old_price] => 368 
     [2] => stdClass Object 
      (
       [chauffeur_id] => 18 
       [chauffeur_avalibality] => 1 
       [chauffeur_supplier_id] => 1 
       [chauffeur_country_id] => 190 
       [chauffeur_city_id] => 0 
       [chauffeur_make] => Mercedes Viano or similar 
       [chauffeur_model] => 
       [chauffeur_car_type] => 3 
       [chauffeur_transmission] => 
       [chauffeur_door] => 4 
       [chauffeur_passengers] => 6 
       [chauffeur_large_suitecase] => 4 
       [chauffeur_small_suitecase] => 6 
       [chauffeur_ac] => 1 
       [chauffeur_img] => carType_145851020593.jpg 
       [chauffeur_service_chaufer] => 1 
       [chauffeur_service_airport] => 0 
       [deleted] => 0 
      ) 

    ) 

) 我不希望这[0]=>stdClass Object而分配,我知道我在做$car_all_attributes[$f_key][$key]并且添加了一个新的关键字get和所有的值,想知道是否有一种方法可以像结果数组一样在同一级上执行它?

[0] => Array 
    (
       [old_price] => 460 
       [chauffeur_id] => 16 
       [chauffeur_avalibality] => 1 
       [chauffeur_supplier_id] => 1 
       [chauffeur_country_id] => 190 
       [chauffeur_city_id] => 0 
       [chauffeur_make] => Mercedes S 350 or similar 
       [chauffeur_model] => 
       [chauffeur_car_type] => 2 
       [chauffeur_transmission] => 
       [chauffeur_door] => 4 
       [chauffeur_passengers] => 5 
       [chauffeur_large_suitecase] => 4 
       [chauffeur_small_suitecase] => 5 
       [chauffeur_ac] => 1 
       [chauffeur_img] => carType_145851015451.jpg 
       [chauffeur_service_chaufer] => 1 
       [chauffeur_service_airport] => 0 
       [deleted] => 0 

回答

1

代替

$car_all_attributes[$f_key]['old_price'] = $car_fare; 
$car_all_attributes[$f_key][$key] = $cars; 

试试这个(即转换对象到数组与旧的价格将其合并,而不是增加一个新的密钥) -

$car_all_attributes[$f_key] = array_merge(
    array('old_price' => $car_fare), 
    (array) $cars 
); 
+0

是的,这是现货。非常感谢 –

1

看起来像你的$cars是一个对象。您应该获取数组,或将其转换为数组。

if ($c_fare[0] == $cars->chauffeur_id) { 
    $car_fare = $c_fare[1]; 
    $car_all_attributes[$f_key] = (array)$cars; 
    $car_all_attributes[$f_key]['old_price'] = $car_fare; 
    $i++; 
} 
0

变化从

$car_all_attributes[$f_key][$key] = $cars; 

$car_all_attributes[$f_key] = (array)$cars;