2013-05-23 5 views
1

Следующий PHP код у меня есть:PHP: Как получить последнее значение массива

foreach ($resources as $resource) 
{ 
    // Iterates on the found IDs 
    //echo 'Name of field: ' . $resource . ' - Value: ' . $resource->attributes() . '<br />'; 
    echo '<tr><td>'.$resource->attributes().'</td></tr>'; 
} 

Возвращает:

1 
2 
3 
4 
5 
6 
7 
8 

Я только хочу, чтобы получить значение последнего элемента: Я попытался с помощью:

echo end(end($resources->attributes())); 

Но это возвращает:

Любые идеи о том, как я могу получить значение?

Благодаря

+0

Добавил живую демонстрацию, чтобы мой ответ, как downvoters убедил меня, что может быть неправильным. Конечно, это не так, поэтому это был нисходящий опрос от другого (возможно, менее полного) ответчика. –

+0

@Jack Casas - положите конец этому безумию и выберите ответ, который вам помог. –

+0

Является $ resource a * array * или * traversable object *? поскольку он указывает на некоторый массив объектов, он может быть сам по себе проходящим объектом. В этом случае end() не будет работать –

ответ

2

Попробуйте использовать end(),

end($resources)->attributes(); 

может это поможет вам.

2

Что вы должны сделать, это:

end($resources)->attributes(); 
0

Вы звоните end дважды, поэтому внешний end функция работает только на одном элементе (возврат внутренней end функции). Попробуйте вместо этого:

echo end($resources)->attributes; 

Если ваш attributes является функцией, а не переменной, вы бы назвали:

echo end($resources)->attributes(); 

Live demo here

+0

Downvoter, почему? –

+0

Поскольку предыдущая версия ответа была неправильной (у вас был 'end ($ resources-> attributes()), что неверно). Теперь вы обновили его, чтобы быть правильным, поэтому я удалил downvote. – Spudley

+1

@Spudley - нисходящая нить без комментария в значительной степени бесполезна. Если вы видите ответ неправильным, вы должны объяснить, что это неправильно. В этом случае это была опечатка. –

0

Это должно работать: -

end($resources)->attributes() 
+0

Его дубликат ответа @deceze. –

0

вы также можете использовать array_reverse(), а затем использовать $ my_array [0]

 <?php 
      $my_array = array(1,2,3,4,5,6,7,8); 
      array_reverse($my_array); 
      echo $my_array[0]; // echoes 8 
     ?> 
-1

Вы можете использовать

$yourvar = count($yourarray) 

, чем вы могли бы назвать это как

echo $yourarray[$yourvar]; 

что бы непосредственно из печати последнего значения в массиве

+0

Это будет работать только в том случае, если массив 1-индексированный, что на самом деле * никогда не происходит в PHP –

0

$ массив [] = массив ('id' => 1, 'value' => 'val1');

$array[]=array('id'=>2, 'value'=>'val2'); 

    $array[]=array('id'=>3, 'value'=>'val3'); 

    $array[]=array('id'=>4, 'value'=>'val4'); 

простой способ получить последнее значение:

$numb = count($array)-1; 
    echo $array[$numb]['value']; 
Смежные вопросы