我有一個像下面如何搜索數組鍵中的子串?
$array =array(
"123,456,789"=> "1,1,1",
"333"=>"1",
"777"=>"1"
)
現在,一個數組,如果我在尋找456則需要回到我數組的鍵(123,456,789),並將其值(1,1,1)
我也試着像下面使它工作,但我沒有得到成功。我需要如果我正在搜索任何值的數組鍵(123或456或789),然後需要提供相同的結果。我知道我可以使用foreach循環來實現這一點,但我不想爲此創建foreach循環,所以建議我是否存在其他解決方案。
$matching_key = preg_grep("/\b456\b/", $array);
對不起,但我在正則表達式中不太好。
想法?有什麼建議麼?
@Ankit Doshi嘗試上面的示例,如果適合您的場景,請使用array_walk()函數替換foreach –
這也將匹配「12,3456,789」。任何不以逗號爆炸的非正則表達式解決方案將導致不正確的結果。 – mickmackusa
@mickmackusa我明白。問題不在於此。他們甚至會搜索關鍵字中的'3,4'或'456,7',這就是我爲了'strpos'而不是'foreach'和正則表達式的原因,我不知道爲什麼他們下了我的答案,當有內建的方法,爲什麼要去'regex'或'foreach'。 –