2016-07-08 7 views
0

現在、いくつかのタスクを扱っていますが、最初と最後の要素が表示される配列のキーを取得する必要があります。PHP:配列の最初の要素と最後の要素を取得します。

例:

$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 

私はこの1つを持つ任意の助けをいただければ幸いです。

P.S.配列の単純な宣言は有効ではありません。なぜなら、非常に長い配列(1000000以上のエントリ)には時間がかかりすぎるからです。だから私はその明らかな解決策を探していません。

また、getFor戻り値の型は必須ではなく、2つの値の文字列または配列のいずれかです。

+4

そして、あなたはそれをやってで立ち往生していますか? – Rizier123

+0

あなたはコードを期待しているか、何かしたことがありますか? –

+3

http://stackoverflow.com/questions/21223286/how-do-i-find-last-occurence-of-needle-in-array-php –

答えて

4
<?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; 
    } 

?> 
+0

ありがとう!かなり良い解決策! –

1

相続人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 
); 
関連する問題