有一個像$arr = array(1,2,3,3,3,4,5). 如果我們想獲得所有值為 3 的索引怎么辦?我用過array_search(3, $arr),但它只返回一個整數(shù)和第一個值為“3”的索引我們怎樣才能得到一個$indexes = array(2,3,4)顯示所有值為 3 的索引的數(shù)組?非常感謝您的幫助
3 回答

繁星點(diǎn)點(diǎn)滴滴
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個贊

揚(yáng)帆大魚
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個贊
你可以使用 array_keys:
foreach (array_keys($arr) as $key) if ($arr[$key] == 3) $result[] = $key;

肥皂起泡泡
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個贊
使用該解決方案,您可以創(chuàng)建復(fù)雜的過濾器。在這種情況下,我們將每個值都與數(shù)字三進(jìn)行比較(=== 運(yùn)算符)。過濾器返回索引,當(dāng)比較為真時,它將被丟棄。
$a = [1,2,3,4,3,3,5,6];
$threes = array_filter($a, function($v, $k) {
return $v === 3 ? $k : false; },
ARRAY_FILTER_USE_BOTH
);
$threes是一個包含所有值為 3 的鍵的數(shù)組。
陣列(3){ 2, 4, 5 }
- 3 回答
- 0 關(guān)注
- 207 瀏覽
添加回答
舉報
0/150
提交
取消