CI PHP: Как хранить данные в массиве при использовании двойного цикла по каждому элементу и включить его кодирование json?

Простой тип будет гарантировать, что компилятор знает, что вы имеете в виду в этом случае.

Foo((object)new object[]{ (object)"1", (object)"2" }));

Поскольку массив является подтипом объекта, все это работает. Бит нечетное решение, я соглашусь.

0
задан Bahtyar 20 March 2019 в 03:34
поделиться

2 ответа

Попробуйте,
ваши $ data перекрываются, поэтому я просто преобразовал их в массив, чтобы все данные сохранялись в нем.

$price = $this->pricing->get_by($hc); //get from pricing
$mainData = array();
foreach ($price as $ps){
   $promo = $this->discount->get_by($ps['key1'],$ps['key2']); //get from discount
 if(!empty($promo)){
   foreach ($promo as $k) {
      if ($k['keyA']!='percent') {
         $pricing = $ps['key3'] - $k['keyB'];   
         $data = array(
            'room_code'=>$ps['key1'],
            'price_code'=>$ps['key2'],
            'price'=>$ps['key3'],
            'discount_type'=>$k['keyA'],
            'disc'=>$k['keyB'],
            'finalprice'=>$pricing
          );
       } 
       elseif ($k['keyA']=='percent') {
          $price = $ps['key3'] - ($ps['key3'] * $k['keyB']/100);
          $data = array(
            'room_code'=>$ps['key1'],
            'price_code'=>$ps['key2'],
            'price'=>$ps['key3'],
            'discount_type'=>$k['keyA'],
            'disc'=>$k['keyB'],
            'finalprice'=>$pricing
          );                                
       }
       array_push($mainData,$data);    
    }
  }
}
0
ответ дан M.Hemant 20 March 2019 в 03:34
поделиться

Вы можете сделать это следующим образом:

$price = $this->pricing->get_by($hc); //get from pricing
$data_arr = array();
foreach ($price as $ps){
   $promo = $this->discount->get_by($ps['key1'],$ps['key2']); //get from discount
   foreach ($promo as $k) {
      if ($k['keyA']!='percent') {
         $pricing = $ps['key3'] - $k['keyB'];   
         $data = array(
            'room_code'=>$ps['key1'],
            'price_code'=>$ps['key2'],
            'price'=>$ps['key3'],
            'discount_type'=>$k['keyA'],
            'disc'=>$k['keyB'],
            'finalprice'=>$pricing
          );
       } 
       elseif ($k['keyA']=='percent') {
          $pricing = $ps['key3'] - ($ps['key3'] * $k['keyB']/100);
          $data = array(
            'room_code'=>$ps['key1'],
            'price_code'=>$ps['key2'],
            'price'=>$ps['key3'],
            'discount_type'=>$k['keyA'],
            'disc'=>$k['keyB'],
            'finalprice'=>$pricing
          );                                
       }    
       $data_arr[] = $data;
     }
}

echo json_encode($data_arr);

Результатом должен быть действительный массив JSON:

[{"room_code":"1212","price_code":"P1","price":"500","discount_type":"ammount","disc":"20","finalprice":480},{"room_code":"1213","price_code":"P2","price":"500","discount_type":"percent","disc":"50","finalprice":250}]
0
ответ дан Koala Yeung 20 March 2019 в 03:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: