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

作者: wxfeng 分类: php 发布时间: 2021-05-11 17:45    阅读 53 次

在编写代码时,对数组的操作是非常普遍的。 比如存储一批客户名或不同用户创建的帖子,将这些数据存储在数组中可以通过逐个迭代来帮助我们处理所有数据。

PHP带有两种不同类型的数组来存储数据,使用简单的数值数组,也可以创建关联数组。 当您只想存储项目列表(例如客户列表)时,数字数组会很有用。 当您要存储键值对(例如客户ID列表以及每个客户购买的产品的总值)时,关联数组很有用。

在处理数组时,经常需要直接访问所创建的数组中的元素。 在PHP中想快速获取数组的第一个或最后一个元素可以通过下面的方法操作。

快速获取php数组中的第一个元素

一种方法是获取索引为0的元素,很容易就可以获得一个简单数字数组的第一个元素。

<?php
$names = ["Adam", "Monty", "Sajal", "Andrew"];
// Output — Adam
echo $names[0];
?>

但是,这不适用于关联数组。在PHP中获取数字或关联数组的第一个元素的最有效方法之一是使用reset()函数。这个函数将数组的内部指针设置为其第一个元素,并返回第一个元素的值。

<?php
$names = ['Andrew', 'Adam', 'Monty', 'James', 'Amanda', 'Jessica', 'Roy'];
$country_capitals = ['Canada' => 'Ottawa', 'Germany' => 'Berlin', 'United States' => 'Washington D.C.', 'China' => 'Beijing', 'India' => 'New Delhi', 'Australia' => 'Canberra'];
// Output — Andrew
echo reset($names);
// Output — Ottawa
echo reset($country_capitals);
?>

reset()函数的作用如下。

<?php
$people = array("Bill", "Steve", "Mark", "David");

echo current($people) . "<br>"; // 当前元素是 Bill
echo next($people) . "<br>"; // Bill 的下一个元素是 Steve
echo current($people) . "<br>"; // 现在当前元素是 Steve
echo prev($people) . "<br>"; // Steve 的上一个元素是 Bill
echo end($people) . "<br>"; // 最后一个元素是 David
echo prev($people) . "<br>"; // David 之前的元素是 Mark
echo current($people) . "<br>"; // 目前的当前元素是 Mark
echo reset($people) . "<br>"; // 把内部指针移动到数组的首个元素,即 Bill
echo next($people) . "<br>"; // Bill 的下一个元素是 Steve

print_r (each($people)); // 返回当前元素的键名和键值(目前是 Steve),并向前移动内部指针
?>

只需将数组传递给reset(),不需要知道第一个元素的键即可获取其值。

如上所述,使用reset()将更改数组的内部指针。 如果要从数组中获取第一个元素而不对数组进行任何更改,则可以使用array_key_first()函数。 这将为您提供数组的第一个键,可用于获取第一个元素的值。

<?php
 
$names = ['Andrew', 'Adam', 'Monty', 'James', 'Amanda', 'Jessica', 'Roy'];
 
$country_capitals = ['Canada' => 'Ottawa', 'Germany' => 'Berlin', 'United States' => 'Washington D.C.', 'China' => 'Beijing', 'India' => 'New Delhi', 'Australia' => 'Canberra'];
 
// Output — Andrew
echo $names[array_key_first($names)];
 
// Output — Ottawa
echo $country_capitals[array_key_first($country_capitals)];
 
?>

注意:array_key_first() 在PHP 7.3以上的版本中才可以使用。

快速获取数组的最后一个元素

对于简单的数字数组,您可以通过从数组长度计算其索引来获取最后一个元素。

<?php
 
$names = ["Adam", "Monty", "Sajal", "Andrew"];
 
// Output — Andrew
echo $names[count($names)-1];
 
?>

但是,这同样不适用于关联数组。

可以在PHP中使用end()函数来获取任何PHP数组的最后一个元素。 它将内部指针设置为数组的最后一个元素,并返回其值。 他的作用类似于reset()函数,它会将数组的内部指针指向最后其一个元素。

<?php
 
$names = ['Andrew', 'Adam', 'Monty', 'James', 'Amanda', 'Jessica', 'Roy'];
 
$country_capitals = ['Canada' => 'Ottawa', 'Germany' => 'Berlin', 'United States' => 'Washington D.C.', 'China' => 'Beijing', 'India' => 'New Delhi', 'Australia' => 'Canberra'];
 
// Output — Roy
echo end($names);
 
// Output — Canberra
echo end($country_capitals);
 
?>

就像array_key_first()一样,也有一个对应的array_key_last()函数,该函数可为您提供数组的最后一个键,而不会对数组的指针指向做任何修改。同样的,array_key_last()函数也是从PHP 7.3开始使用。

总结

还有许多方法可以获取PHP中元素的第一个或最后一个数组。 例如,您可以使用array_values()获取数组的所有值(不保留键名),然后获取第一个或最后一个元素。 但是,如果不需要从数组中获得任何其他信息,使用reset(),array_key_first(),end()和array_key_last()函数会更加快速有效。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注