Php 搜索数组并返回数组

Php 搜索数组并返回数组,php,arrays,Php,Arrays,如果数组和一个特定字段匹配,我如何返回数组 更清楚地说,假设我有一个数组,看起来是这样的--- 因此,这里我想要的是,如果我搜索valvet,它应该在数组的[product\u name]字段中搜索,并返回带有其他字段的数组 比如说--- 如果我搜索valvet,它应该返回-- 这是我的PHP代码,我正在尝试做的-- 但是它只返回[“product_name”]而不是匹配的数组 我该如何解决这个问题?有人能帮我解决这个问题吗 为什么不用$v代替$ret function my_array_sea

如果数组和一个特定字段匹配,我如何返回数组

更清楚地说,假设我有一个数组,看起来是这样的---

因此,这里我想要的是,如果我搜索valvet,它应该在数组的[product\u name]字段中搜索,并返回带有其他字段的数组

比如说---

如果我搜索valvet,它应该返回--

这是我的PHP代码,我正在尝试做的--

但是它只返回
[“product_name”]
而不是匹配的数组


我该如何解决这个问题?有人能帮我解决这个问题吗

为什么不用
$v
代替
$ret

function my_array_search($array, $string)
{
    $ret = false;
    $pattern = preg_replace('/\s+/', ' ', preg_quote($string, '/'));
    foreach($array AS $k => $v) {
      $res = preg_grep('/' . $pattern . '/', $v);
      if(!empty($res)) $ret[$k] = $v;
    }

    return $ret;
}
preg_grep-返回与模式匹配的数组项

因此,在您的例子中,它返回
产品名称
。您需要整个数组,您搜索了ie.
$v

if (!empty($res)) $ret[$k] = $v;
$data = 'plus'; // what i want to search
$search = my_array_search($all_data, $data);

    function my_array_search($array, $string)
{
    $ret = false;
    $pattern = preg_replace('/\s+/', ' ', preg_quote($string, '/'));
    foreach($array AS $k => $v) {
      $res = preg_grep('/' . $pattern . '/', $v);
      if(!empty($res)) $ret[$k] = $res;
    }

    return $ret;
}
function my_array_search($array, $string)
{
    $ret = false;
    $pattern = preg_replace('/\s+/', ' ', preg_quote($string, '/'));
    foreach($array AS $k => $v) {
      $res = preg_grep('/' . $pattern . '/', $v);
      if(!empty($res)) $ret[$k] = $v;
    }

    return $ret;
}
if (!empty($res)) $ret[$k] = $v;