2015-12-22 2 views
0

У меня есть SQL-запрос, который возвращает массив объектов с именем $results. SQL-запрос имеет «LIMIT 1», поэтому в массиве никогда не бывает нескольких экземпляров объекта (нет необходимости в цикле). Массив ниже:Доступ к массиву объектов без цикла

массив (1) {[0] => объект (StdClass) # 5875 (1) {[ "meta_value"] => строка (3) "да"}}

Объект meta_value может быть «да» или «нет». Я хотел бы получить доступ к 'meta_value' напрямую, поэтому я могу использовать его вывод в состоянии, я изо всех сил пытаюсь найти способ сделать это. Мой код ниже, это не является допустимой PHP однако

if ($results->meta_value == 'yes') { 
    //do something nice 
} 
+1

$ result = $ results [0]; и использовать $ result вместо $ results – Surace

+0

'$ results [0] -> meta_value == 'yes'' – danjam

+0

Ваш объект является ** первым ** элементом в вашем массиве. Поэтому вы можете получить к нему доступ с помощью '$ results [0]'. –

ответ

3

Причина $results является массивом объектов вы должны выбрать первый элемент с индексом 0, а затем принять определенное свойство:

if ($results[0]->meta_value == 'yes') {} 
0

imo, самый простой, надежный и безопасный способ получения значения первой строки PHP array - использовать функцию current — Return the current element in an array.

if (current($results)->meta_value === 'yes') { 
    //do something nice 
} 

Почему?

Проблема в том, что PHP array не является «линейным списком ячеек в ячейке памяти в нулевой последовательности. Это действительно упорядоченный hash map на других языках.

Он способен использовать any string как key или index. Если вы не используете ключ при добавлении записи в массив, он использует числовой индекс, начинающийся с нуля.

Важным моментом является то, что ключи не обязательно должны быть последовательными целыми числами. Они могут быть словами (строка). то есть не Там может быть не нулевым индексом в массиве

Итак, как получить доступ к первому элементу в PHP array, если мы не знаем, индексы, которые keys?

PHP массив итераторы

Каждый array имеет iterator, связанный с ним. Итератор points к элементу, если массив имеет элементы или не определен для пустых массивов.

Когда массив создается итератор всегда устанавливается, чтобы указать на первой записи

Общие функции для доступа к :

  • current - возвращает элемент, на который указывает internal pointer в массиве

  • key - извлекает ключ из массива

  • next - Передвинуть внутренний указатель массива из массива
  • reset - Установите внутренний указатель массива на его первый элемент

    Примечания:

  • current вернет false, если не указывает на действительный элемент, иначе он вернет значение.

Резюме

С помощью функции current получить доступ к массиву вы уверены, чтобы получить значение записи независимо от index или key на самом деле.

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