如何测试数组指针是否在 foreach 循环中的第一个元素

2022-08-31 00:06:27

在 for 循环中,这很简单...

for ( $idx = 0 ; $idx < count ( $array ) ; $idx ++ )
{
    if ( $idx == 0 )
    {
        // This is the first element of the array.
    }
}

这到底是怎么回事?

有没有类似或什么的功能?is_first()

我正在寻找类似的东西:

foreach ( $array as $key => $value )
{
    if ( /* is the first element */ )
    {
        // do logic on first element
    }
    else
    {
        // all other logic
    }
}

我想我可以设置一个 bool like,然后一旦循环迭代一次,就将 bool 设置为 false。$is_first = true;

但是php有很多预建的函数,id宁愿使用它...或者其他方式...

整个布尔的方式似乎几乎就像...猎豹 :s

干杯

亚历克斯


答案 1

我通常这样做:

$isFirst = true;
foreach($array as $key => $value){
  if($isFirst){
    //Do first stuff
  }else{
    //Do other stuff
  }
  $isFirst = false;
}

显然,适用于任何类型的数组。


答案 2

您可以使用“current()”执行此操作

$myArray = array('a', 'b', 'c');
if (current($myArray) == $myArray[0]) {
    // We are at the first element
}

文档: http://php.net/manual/en/function.current.php

检索第一个元素的方法:

$myArray[0]

$slice = array_slice($myArray, 0, 1); 
$elm = array_pop($slice);

推荐