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

Posted

技术标签:

【中文标题】获取数组中的第一个和最后一个元素【英文标题】:get first and last element in array 【发布时间】:2013-12-01 21:32: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];

我可以选择 $col0 和 $col6,但数组可能会更长,因此需要一种过滤第一个(“24.0”)和最后一个(“24.6”)元素的方法。 问候

【问题讨论】:

看看reset()end()。附言0 永远是第一个元素,最后你可以做$arr[count($arr)-1] 【参考方案1】:

php 7.3 开始,array_key_first 和 array_key_last 可用

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

注意使用这种方法。 $array = array(1, 2, 3); echo current($array) . " "; echo end($array) . " "; echo current($array) . " "; 返回 1 3 3【参考方案3】:

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

示例:数组值

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

【讨论】:

【参考方案4】:

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

【讨论】:

是的,但是看看我的数组,当我使用你的代码时,我得到:“警告:reset() 期望参数 1 是数组,给定 null”和 end() 【参考方案5】:

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

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

【讨论】:

【参考方案6】:

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

$firstEle = reset($arr);

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

end() 获得最后一个:

$lastEle = end($arr);

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

【讨论】:

以上是关于获取数组中的第一个和最后一个元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在java中获取数组中的第一个和最后一个元素?

获取数组中的第一个和最后一个元素,ES6方式[重复]

php获取并删除数组的第一个和最后一个元素

js怎么获取数组里的第一个元素

php获取并删除数组的第一个和最后一个元素

php 获取数组第一个key 第一个键值对 等等