как выводится (эхо) массив без использования json_encode? (codeigniter) - PullRequest
0 голосов
/ 19 июля 2011

для выходного массива Вместо использования json_encode, используйте что. (Как выводится массив (эхо) без использования json_encode?) Я использую codeigniter.

CI_Controller:

function auto_complete(){
    $hotel_search = $this->input->post('search_hotel');      
    echo json_encode($this->model_tour->auto_complete($hotel_search)); 
// if use of json_encode output is '[{"name":"salal"},{"name":"salaso"},{"name":"salasi"},{"name":"salsh"}]' if don want use of json_encode output is "Array"
}

CI_model:

function auto_complete($hotel_search)
    {

            $query_hotel_search = $this->db->order_by("id", "desc")->like('name', $hotel_search)->get('hotel_submits');
            if($query_hotel_search->num_rows()==0){
                return '0';
            }else{
                $data = array();
                foreach ($query_hotel_search->result() as $row)
                {
                   $data[] = array('name' => $row->name);
                }
                return $data;          
        }
}

Ответы [ 6 ]

1 голос
/ 19 июля 2011

Если вы просто хотите просмотреть массив, print_r($array) или var_dump($array) будут работать

0 голосов
/ 20 июля 2011

Если вы используете jQuery, любая функция .ajax (), .get () или .post () попытается угадать тип данных, возвращаемый из HTTP-запроса.Установите тип содержимого вашего контроллера в JSON:

$hotel_search = $this->input->post('search_hotel');
$this->output
    ->set_content_type('application/json')
    ->set_output( json_encode($this->model_tour->auto_complete($hotel_search)) ); 
0 голосов
/ 19 июля 2011

В вашем распоряжении есть несколько вариантов:

  • json_encode (которые вы упомянули сами)
  • print_r или var_dump (Timw4mail упоминает это)
  • implode (однако это не будет работать для вложенных массивов и будет отображать только ключи)
  • комбинация array_map (для форматирования отдельных элементов массива с использованием вашей собственной функции)и implode (для объединения результатов)
  • написать свою собственную рекурсивную функцию, которая объединяет массив в строку
0 голосов
/ 19 июля 2011
foreach($array as $key => $value)
{
    echo $key . ' = ' . $value . "\n";
}

Это даст вам массив в виде строки.

Вы также можете использовать print_r ()

print_r($array);

или var_dump ()

var_dump($array);
0 голосов
/ 19 июля 2011

Если вы хотите просмотреть содержимое массива, используйте print_r или vardump

Если вы хотите сделать что-то полезное с информацией, вам придется пройти через массив

foreach($this->model_tour->auto_complete($hotel_search) as $key => $value){
    //do something
}
0 голосов
/ 19 июля 2011

Я не уверен, что это то, что вы ищете, но это действительно помогает показать структуру массива / JSON:

<code>echo "<pre>";
print_r($array);
echo "
";

Это покажетмассив $ разорван и сохранит вкладку, чтобы вы могли видеть, как она вложена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...