过滤数组,以保留键包含搜索字符串的所有元素

2022-02-25 00:00:00 filtering key php substring

我正在尝试执行一些预测性搜索,并将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);

相关文章