【问题标题】:PHP: Get first and last element entries in array and it's keysPHP:获取数组中的第一个和最后一个元素条目及其键
【发布时间】:2016-07-08 11:50:11
【问题描述】:

我目前正在处理一些任务,需要获取第一次和最后一次出现的元素的数组键。

例子:

$array = [1,2,3,2,4,1,1,2,3];

getFor(1); // keys 0 and 6
getFor(2); // keys 1 and 7
getFor(3); // keys 2 and 8

如果有任何帮助,我将不胜感激。

附:简单地对数组进行遍历在这里无效,因为对于非常长的数组(超过 1000000 个条目)需要太多时间。所以我正在寻找不那么明显的解决方案。

另外,getFor 返回类型不是必需的,它可以是字符串或两个值的数组。

【问题讨论】:

标签: php arrays


【解决方案1】:
<?php

   $array = array(1,2,3,2,4,1,1,2,3);
   getFor(1,$array);

   function getFor($a,$arr)
   {
     $keys = array_keys($arr, $a);
     $count = count($keys);
     $first = $keys[0];
     $last = $keys[$count-1];
     $str = $first."=".$last;
     echo $str;
   }

?>

【讨论】:

    【解决方案2】:

    这是一个 OOP 解决方案:

    class GetFor
    {
        private $Foo[];
        public function __construct(
            array $foo, $bar
        ) {
            $this->Foo = array_keys($foo, $bar);
            return $this->Foo[0] . '-' . $this->Foo[count($this->Foo) -1)];
        }
    }
    
    echo new GetFor(
        [0,1,2,3,4,6,3,1,5], 2
    );
    

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 2011-09-09
      • 2012-04-21
      • 2013-01-14
      • 2017-02-13
      • 2021-09-28
      相关资源
      最近更新 更多