3 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
使用第二個(gè)參數(shù)array_keys:
if($blue = array_keys($myarray, 'blue')) {
$min = min($blue);
$max = max($blue);
}

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
可能這就是答案?
function getMinKey($arr, $search){
if(!in_array($search, $arr)){
return false;
}
foreach($arr as $key => $value){
if($value == $search){
return $key;
}
}
}
function getMaxKey($arr, $search){
if(!in_array($search, $arr)){
return false;
}
$arrCount = count($arr)-1;
for($i = $arrCount; $i >=0; $i--){
if($arr[$i] == $search){
return $i;
}
}
}

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
到目前為止,所有解決方案都搜索了整個(gè)數(shù)組,這可能效率很低。您只需要從頭搜索到第一個(gè)“藍(lán)色”,從末尾搜索到最后一個(gè)“藍(lán)色”。像這樣:
$find = "blue";
$first = false;
$last = false;
$max = count($myarray);
$key = 0;
while ($key < $max) {
if ($myarray[$key] == $find) {
$first = $key;
break;
}
$key++;
}
if ($first !== false) {
$key = --$max;
while ($key > 0) {
if ($myarray[$key] == $find) {
$last = $key;
break;
}
$key--;
}
}
請(qǐng)注意,此代碼考慮到不會(huì)找到任何內(nèi)容。在這種情況下,$first并且$last將包含false. 它還檢查是否$first找到了阻止在顯然不需要的情況下對(duì)數(shù)組進(jìn)行兩次搜索。
- 3 回答
- 0 關(guān)注
- 187 瀏覽
添加回答
舉報(bào)