2010-12-01 4 views
0

Я пытаюсь напечатать элемент [0] массива. Приведенный ниже код создает мой массив, но выход только говорит, что «Массив»Элементы массива не отображаются?

$this->db->select('company_name'); 
$query = $this->db->get('companies'); 
$query = $query->result_array(); 
echo $query['company_name']; 

ответ

0

То, что вы пытаетесь сделать, это эхо сам массив. Если вы просто попытаетесь повторить массив, PHP не покажет вам содержимое.

Когда вы получаете результаты из базы данных, обычно это будет двухмерный массив, то есть он будет массивом, чьи данные больше массивов. Если вы эхо-данные в первом индексе массива 1, вы будете пытаться эхо-массива, так как это то, что находится в первом массиве.

Чтобы получить содержимое, вам необходимо использовать два индекса; один для индекса массива, и один для индекса данных в массиве:

<?php 
    $my_array = array(array(8, 2, 4), array(7, 12, 32), array(62, 2, 1)); 
    echo $my_array[1][1] // echos 12 
    echo $my_array[1] // echos "Array" because the data at index 1 is an array 
?> 

Или, может быть, вы хотите, чтобы увидеть все содержимое массива. Если это так, функция print_r() - ваш друг. Это рекурсивное и позволяет просматривать содержимое массивов внутри массивов:

<?php 
    $my_array = array(array(8, 2, 4), array(7, 12, 32), array(62, 2, 1)); 
    print_r($my_array); 
    /* 
     The above will output the following: 
     Array 
     (
      [0] => Array 
       (
        [0] => 8 
        [1] => 2 
        [2] => 4 
       ) 

      [1] => Array 
       (
        [0] => 7 
        [1] => 12 
        [2] => 32 
       ) 

      [2] => Array 
       (
        [0] => 62 
        [1] => 2 
        [2] => 1 
       ) 
     ) 
    */ 
?> 

Заканчивать ссылку на print_r() PHP Reference для получения дополнительной информации.

+0

Вы явно не поняли вопрос – roger 2010-12-01 17:13:50

+0

Вы правы. Я неправильно понял. Это имеет смысл? – 2010-12-01 17:21:28

0

Havent используется PHP на некоторое время, но сделать что-то вроде:

print_r($query); 

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

1

$query['company_name'] - это массив.

Используйте print_r($query['company_name']);, чтобы увидеть более подробную информацию.

+0

Зачем это массив. Конечно $ query = $ query-> result_array(); вернет массив со всеми результатами? – roger 2010-12-01 16:58:34

0

$query['company_name'] представляет собой массив, этот массив состоит из значения поля «company_name» для каждой записи в возвращаемом результирующем, поэтому

$query['company_name']['0'] является company_name в первом ряду вернулся.

Поэтому вы хотите либо:

echo $query['company_name'][0]; 
print $query['company_name'][0] 
print_r($query['company_name']); 

Просто делать:

print_r($query); 

даст вам представление о том, как устроена возвращаемый ResultSet.

Смежные вопросы