我在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
答案 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
答案 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);