我有一个数组如下
$array =array(
"123,456,789"=> "1,1,1",
"333"=>"1",
"777"=>"1"
)
如果我正在搜索456,那么需要返回数组键(123456789)及其值(1,1,1)
我也尝试了下面的方法,但是没有成功,我需要用数组键的任何值(123、456或789)进行搜索,然后提供相同的结果。我知道我可以使用Frach循环来实现这一点,但是我不想为此创建Frach循环,所以如果有其他的解决方案,建议我。
$matching_key = preg_grep("/\b456\b/", $array);
对不起,我的正则表达式不太好。
思想?有什么建议吗?
最佳答案
preg_grep
函数作用于数组的值,而不是键,因为这是您所需要的。
你可以先拿到钥匙。
<?php
$array =array(
"123,456,789"=> "1,1,1",
"333"=>"1",
"777"=>"1"
);
$keys = array_keys($array);
$matching_key = preg_grep("/\b456\b/", $keys);
var_dump($matching_key);
//returns "123,456,789"
https://3v4l.org/SndkV
不管怎样,我得说你可能应该改变你的数据结构。这看起来是个糟糕的设计。