$roots = [
['id'=>1, 'name'=>'a', 'state'=>1],
['id'=>2, 'name'=>'b', 'state'=>1],
// ... 8000 條
];
$result = array_filter($roots, function($var) {
return $var['name'] === 'a';
});
$result = array_filter($roots, function($var) {
return $var['name'] === 'a' && $var['state'] === 1;
});
WHERE name='a' AND state=1 完成篩選。$index['a'] = [&$roots[0], &$roots[5], ...],查詢直接 O(1) 獲取引用。array_column 提取單列配合 array_keys 定位:$ids = array_keys(array_column($roots, 'name'), 'a');array_filter 保留原鍵名,若需連續索引,結果用 array_values($result) 重置。