2013-11-18 6 views
23

эй там у меня есть этот массив:получить первый и последний элемент в массиве

array(1) { 
    ["dump"]=> 
    string(38) "["24.0",24.1,24.2,24.3,24.4,24.5,24.6]" 
} 

мой вопрос:

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

$firstEle = "24.0"; 

и

$lastEle = "24.6"; 

Кто-нибудь знает, как получить эти элементы из массива?

я уже попытался это:

$arr = json_decode($_POST["dump"], true); 

$col0 = $arr[0]; 
$col1 = $arr[1]; 
$col2 = $arr[2]; 
$col3 = $arr[3]; 
$col4 = $arr[4]; 
$col5 = $arr[5]; 
$col6 = $arr[6]; 

я мог выбрать $ col0 и $ col6, но массив может быть намного больше, поэтому нужен способ для фильтрации первого («24,0») и последний ("24.6"). приветствия

+1

Посмотрите на [ ' reset() '] (http://php.net/reset) и [' end() '] (http://php.net/end). Постскриптум '0' всегда будет первым элементом, а для последнего вы можете сделать' $ arr [count ($ arr) -1] '. –

ответ

68

reset() и end() делает именно это.

Из инструкции:

reset(): Возвращает значение первого элемента массива или FALSE если массив пуст.

end(): Возвращает значение последнего элемента или FALSE для пустого массива.

Пример:

<?php 
    $array = array(24.0,24.1,24.2,24.3,24.4,24.5,24.6); 

    $first = reset($array); 
    $last = end($array); 

    var_dump($first, $last); 
?> 

который выводит:

поплавок (24)
поплавка (24,6)

DEMO


ПРИМЕЧАНИЕ: Это сбросит ваш массив указателей значения, если вы используете current(), чтобы получить текущий элемент или вы добившиеся в середине массива, reset() и end() сбросит указатель массива (в начале и конец):

<?php 

$array = array(30.0, 24.0, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 12.0); 

// reset — Set the internal pointer of an array to its first element 
$first = reset($array); 

var_dump($first); // float(30) 
var_dump(current($array)); // float(30) 

// end — Set the internal pointer of an array to its last element 
$last = end($array); 

var_dump($last); // float(12) 
var_dump(current($array)); // float(12) - this is no longer 30 - now it's 12 
+0

да, но посмотрите на мой массив, когда я использую ваш код, я получаю: «Warning: reset() ожидает, что параметр 1 будет массивом, null задан» и тот же для end() – user2999787

+0

теперь он работает, пришлось удалить «,»;) – user2999787

0

Вы можете использовать reset(), чтобы получить первый:

$firstEle = reset($arr); 

reset() перематывает внутренний указатель массива на первый элемент и возвращает значение первого элемента массива.

И end() получить последний: внутренний указатель

$lastEle = end($arr); 

end() Авансы массива последний элемент и возвращает его значение.

3

Вы можете обращаться к элементам массива всегда с синтаксисом квадратной скобки. Итак, чтобы получить первое использование 0, так как массивы индексируются на основе нуля и count($arr) - 1, чтобы получить последний элемент.

$firstEle = $arr[0]; 
$lastEle = $arr[count($arr) - 1]; 
0

Мы можем получения идеальной цели, используя значения массива и массива ключей также

Пример: Array Значения

<?php 
    $array = array(24.0,24.1,24.2,24.3,24.4,24.5,24.6);   
    $array_values = array_values($array); 

    // get the first item in the array 
    print array_shift($array_values); 

    // get the last item in the array 
    print array_pop($array_values);  
?> 

Пример: Array ключи

<?php 
    $array = array(24.0,24.1,24.2,24.3,24.4,24.5,24.6);   
    $array_keys = array_keys($array); 

    // get the first item in the array 
    print $array[array_shift($array_keys)]; 

    // get the last item in the array 
    print $array[array_pop($array_keys)];  
?> 
Смежные вопросы