Проблемы с массивом и где в пункте - PullRequest
0 голосов
/ 20 июля 2009

У меня возникли проблемы при попытке использовать результат запроса в качестве массива

Сначала я запускаю запрос, чтобы получить все нужные мне почтовые индексы

   $this->db->select('zip');
    $this->db->from('custom_city');
    $this->db->join('city_to_zip', 'custom_city.id = city_to_zip.city_id', 'left');
    $this->db->where('city_to_zip.city_id', $_POST['city']);
    $zip = $this->db->get();
    $data['zips'] = $zip;

    $zip_array = $zip->result_array();

тогда запрос выводится так, когда я пытаюсь его использовать.

Теперь я знаю, что он что-то делает, потому что он говорит "массив" 8 раз, и это правильный счет для запроса. Мне просто нужно знать, как получить почтовый индекс вместо массива слов.

AND `zip_code` IN (Array, Array, Array, Array, Array, Array, Array, Array) [/quote]

В моем запросе я использую ...

 $this->db->where_in('zip_code', $zip_array);

Спасибо

Jbeasley

1 Ответ

3 голосов
/ 20 июля 2009

Это потому, что result_array() возвращает ассоциативный массив для каждой строки (поэтому вы получаете массив массивов). Чтобы получить почтовые индексы в $zip_array, замените эту строку:

$zip_array = $zip->result_array();

с

$zip_array = array();
$result = $zip->result_array();
foreach ($result as $row) {
    $zip_array[] = $row['zip'];
}

Документация на result_array ()

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