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

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

肥皂起泡泡
TA貢獻1829條經驗 獲得超6個贊
使用該解決方案,您可以創建復雜的過濾器。在這種情況下,我們將每個值都與數字三進行比較(=== 運算符)。過濾器返回索引,當比較為真時,它將被丟棄。
$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 的鍵的數組。
陣列(3){ 2, 4, 5 }
- 3 回答
- 0 關注
- 201 瀏覽
添加回答
舉報
0/150
提交
取消