Разница между выходным возвратом и print_r - PullRequest
0 голосов
/ 27 октября 2011

Это контроллер в codeigniter, у меня проблема с возвратом на функцию get_reunits() при запуске функции marge_orderfun(). когда я запускаю функцию get_reunits() с выводом print_r (print_r($hotel_data);), я даю следующий вывод (это то, что я хочу):

Array (
[0] => Array (
[name] => 11
[price] => 77192276
[extra] => 11
[hotel_id] => 77192276
)
[1] => Array (
[name] => 11
[price] => 77192276
[extra] => 11
[hotel_id] => 77192276
)
) Array (
[0] => Array (
[name] => 666666666
[price] => 15190364
[extra] => 11
[hotel_id] => 15190364
)
[1] => Array (
[name] => 99999
[price] => 15190364
[extra] => 11
[hotel_id] => 15190364
)
[2] => Array (
[name] => 777777
[price] => 15190364
[extra] => 11
[hotel_id] => 15190364
)
[3] => Array (
[name] => 1221
[price] => 15190364
[extra] => 11
[hotel_id] => 15190364
)
) Array (
[0] => Array (
[name] => 666666666
[price] => 11
[extra] => 33
[hotel_id] => 15183965
)
[1] => Array (
[name] => 99999
[price] => 11
[extra] => 33
[hotel_id] => 15183965
)
[2] => Array (
[name] => 777777
[price] => 11
[extra] => 33
[hotel_id] => 15183965
)
[3] => Array (
[name] => 1221
[price] => 11
[extra] => 33
[hotel_id] => 15183965
)
)

При использовании с return $hotel_data; для функции вывода и запуска marge_orderfun() я получаю этот вывод:

{ "reunits": [{ "Имя": "11", "цена": "77192276", "экстра": "11", "hotel_id": "77192276"}, { "имя": "11 », "цена": "77192276", "экстра": "11", "hotel_id": "77192276"}]}

Это мой контроллер:

function get_reunits(){
    //$tourf_id   = $this->input->post('tour_name');
    $tourf_id = '102';
    $query_r = $this->db->order_by('id','desc')->get_where('tour_foreign_residence', array('relation' => $tourf_id));                
    foreach($query_r->result() as $idx=>$val){
        $hotel_id = $val->hotel_id;
        $query = $this->db->get_where('tour_foreign_units', array('hotel_id' => $hotel_id));
        if($query->num_rows() > 0){
            $hotel_data = array();
            foreach ($query->result() as $index=>$row) {
                $hotel_data[] = array(
                    'name' => $row->name,
                    'price' => $row->price,
                    'extra' => $row->extra,
                    'hotel_id' => $row->hotel_id
                );                            
            }
        }else{
                return 0;
        }
        //print_r($hotel_data);
        return $hotel_data;
    }
}
function marge_orderfun(){
    //$guide = array('guide' => $this->get_gr());
    //$residence = array('residence' => $this->get_residence());
    $reunits = array('reunits' => $this->get_reunits());
    echo json_encode(array_merge(/*$guide, $residence,*/$reunits));
}

Что мне делать для вывода в marge_orderfun() как вывода в print_r в get_reunits()?

Ответы [ 2 ]

1 голос
/ 27 октября 2011

На самом деле вы выводите две разные вещи.print_r выводит структуру / содержимое массива PHP в хорошо читаемый формат.ваш marge_orderfun выдает строку текста в формате JSON.Эта строка jSON ИСПОЛЬЗУЕТСЯ в виде массива PHP, но теперь это просто текстовый блок

0 голосов
/ 27 октября 2011

Может быть, этот код помогает:

$a = array();
$b = print_r($a, true);
echo $b;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...