PHP数组中值的出现的第一个和最后一个索引

时间:2017-05-17 11:38:37

标签: php arrays

我在PHP中创建了一个数组,如下所示:

$arr = array(123,144,144,123);

如何获取每个值出现的第一个和最后一个索引 像,

123 -> first occurrence - 0th index | last occurrence - 3rd index
144 -> first occurrence - 1st index | last occurrence - 2nd index

2 个答案:

答案 0 :(得分:4)

使用array_search()

$arr = array(123,144,144,123);
$first = array_search(123, $arr); // 0
$last = array_search(123, array_reverse($arr, true)); // 3

了解详情:http://php.net/manual/en/function.array-search.php

答案 1 :(得分:0)

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

$result = [];

for($i = 0; $i < sizeof($array); $i++){

    if(!in_array($array[$i],array_keys($result))){
        $result[$array[$i]] = ['first-occurance'=>$i,'last-occurance'=>$i];
    }

    for($j = $i+1; $j < sizeof($array); $j++){

        if($array[$i] == $array[$j]){

            $result[$array[$i]]['last-occurance'] = $j;
        }
    }
}

var_dump($result);

使用array_search()&#34; CREDITS到Dan Miller&#34;

$result = [];

for($i = 0; $i < sizeof($array); $i++){

    if(!in_array($array[$i],array_keys($result))){
        $result[$array[$i]] = ['first-occurance'=>array_search($array[$i],$array),'last-occurance'=>array_search($array[$i],array_reverse($array, true))];
    }
}

var_dump($result);