2013-08-10 1 views
0

Я сделал print_r на моем массиве $total и он вернулся следующее:Как получить доступ к переменной из объекта stdClass в массиве массивов?

Array () Array () Array () Array () Array ([0] => stdClass Object ( 
[generated] => 6 [magnitude] => 3 [log_pk] => 14 [result] => 0.5000)) 
Array () Array () 

Мне нужно, чтобы иметь возможность распечатать log_pk изнутри stdClass Object. Я пробовал print $total[0]->log_pk, но это не увенчалось успехом. Ошибка была Undefined offset: 0. Любая помощь приветствуется. Благодарю.

+0

Что с массивом Array() Array() Array() Arr ... 'в начале? –

+0

Похоже, что этот массив находится в индексе 4? –

+0

@DaveChen Он выглядит как последовательный print_r на пустых массивах. –

ответ

1

Так что это в цикле, вы должны проверить, если индекс 0 существует первый.

if (isset($total[0])) echo $total[0]->log_pk 
0

var_dump() отображает структурированную информацию об одном или нескольких выражениях, которые включают его тип и значение. Массивы и объекты исследуются рекурсивно со значениями, отступающими для отображения структуры.

var_dump($total) 

PHP: var_dump - Manual

+0

Я пытаюсь получить конкретное значение из массива '$ total', а не сбрасывать всю партию? – jstwrt

1

Вы делаете это в цикле? Если это так, то похоже, что на большинстве итераций массив пуст. Попробуйте:

if (!empty($total)) print $total[0]->log_pk;

0

это выглядит как ваш print_r находится внутри цикла.

while(true){ 
    $total = some_function(); 
    print_r($total); 
    if($condition) break; 
} 
// Here - outside the loop, is not the right place for the print_r(); 

Если вы хотите распечатать вне цикла, вы изменили бы $total = some_function(); к $total[] = some_function();, а затем вы можете сделать print_r($total[index])