过滤数组,以保留键包含搜索字符串的所有元素
我正在尝试执行一些预测性搜索,并将preg_grep()
用作摆脱SQL中的LIKE
的一种方式。
我有以下数组:
$values = array("Phorce" => 123, "Billy" => 234);
如果我有Phorc
,我需要所有数组元素(键和值),部分匹配Phorc
,所以这里是Phorce => 123
。是否可以使用preg_grep()
?
我已尝试使用以下内容:
$result = preg_grep('~' . 'Phorce' . '~', $values);
如何使代码按上述方式工作?
解决方案
那么您要搜索密钥吗?
$values = array("Phorce" => 123, "Billy" => 234);
$results = preg_grep('/Phor/', array_keys($values));
$arr = [];
foreach($results as $result) {
$arr[$result] = $values[$result];
}
print_r($arr);
相关文章