获取数组中的第一个和最后一个元素

时间:2013-11-18 16:29:13

标签: php arrays indexing

嘿,我有这个阵列:

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”)元素。 问候

6 个答案:

答案 0 :(得分:99)

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

答案 1 :(得分:10)

您可以使用方括号语法访问数组元素。所以首先使用0,因为数组是从零开始索引的,而count($arr) - 1是为了得到最后一项。

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

答案 2 :(得分:1)

您可以使用reset()获取第一个:

$firstEle = reset($arr);
  

reset()将数组的内部指针倒回第一个元素,并返回第一个数组元素的值。

end()获取最后一个:

$lastEle = end($arr);
  

end()使数组的内部指针前进到最后一个元素,并返回其值。

答案 3 :(得分:1)

从PHP 7.3开始,array_key_firstarray_key_last可用

$first = $array[array_key_first($array)];    
$last = $array[array_key_last($array)];

答案 4 :(得分:0)

我们可以使用数组值和数组键来实现目标

示例:数组值

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

示例:数组键

 <?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)];       
?>

答案 5 :(得分:0)

对于第一个元素:current($arrayname);

最后一个元素:end($arrayname);

  

current():current()函数返回current的值   数组中的元素。每个数组都有一个内部指针指向它   “当前”元素,已初始化为插入的第一个元素   进入数组。

     

end():end()函数将内部指针移至并输出,   数组中的最后一个元素。相关方法:current()-返回   数组中当前元素的值

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

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

echo 'First Element: '.$first.' :: Last Element:'.$last;

输出结果:

First Element: 24 :: Last Element:24.6