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

2022-08-30 10:40:10

嘿,我有这个数组:

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

我可以选择$col 0和$col 6,但数组可能要长得多,所以需要一种方法来过滤第一个(“24.0”)和最后一个(“24.6”)元素。问候


答案 1

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)

演示


注意:这将重置数组指针,这意味着如果您使用 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

答案 2

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

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