Элементы массива не отображаются? - PullRequest
0 голосов
/ 01 декабря 2010

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

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

Ответы [ 4 ]

1 голос
/ 01 декабря 2010

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

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

1 голос
/ 01 декабря 2010

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

print_r($query);

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

0 голосов
/ 01 декабря 2010

$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);

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

0 голосов
/ 01 декабря 2010

То, что вы пытаетесь сделать, это повторить сам массив.Если вы просто попытаетесь отобразить массив, 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 для получения дополнительной информации.

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