Php 如何使数组searchCategories成为搜索数组中的键值

Php 如何使数组searchCategories成为搜索数组中的键值,php,Php,我正在搜索中进行筛选,并拥有以下数据数组: search: Array(2) 0: "asd" 1: "sss" searchCategory: Array(2) 0: "product_name" 1: "product_name" 我想使用http\u build\u query()将它们存储在可以传递的数组中 示例?product_name=asd&product_name=sssPHP中有一个函数用于此 $k = ['k1', 'k2']; $v = [

我正在搜索中进行筛选,并拥有以下数据数组:

search: Array(2)
    0: "asd"
    1: "sss"
searchCategory: Array(2)
    0: "product_name"
    1: "product_name"
我想使用http\u build\u query()将它们存储在可以传递的数组中

示例?product_name=asd&product_name=sss

PHP中有一个函数用于此

$k = ['k1', 'k2'];
$v = ['v1', 'v2'];

$c = http_build_query(array_combine($k, $v));
$c变量将包含:
k1=v1&k2=v2


而你只需要给它添加一个
前缀

循环数组并使用key构建字符串以获取$search项

$search = ["asd","sss"];
$category = ["product_name","product_name"];

$str = "?";
// loop category 
foreach($category as $key => $cat){
    $str .= $cat . "="  .$search[$key] . "&"; // add category and search + &
}

$str = rtrim($str, "&"); // remove trailing &
echo $str; //?product_name=asd&product_name=sss

循环它们并构建字符串这正是我所做的,但似乎无法获得正确的逻辑我们看不出您是否已经尝试过。一种简单的方法是将数组转换为逗号分隔的字符串并发送它们<代码>搜索类别。加入(“,”)。然后在服务器端将其转换回一个数组。@Andreas如果你这样认为,我很抱歉,也许我的问题缺乏细节。这样做行不通。一个数组不能有两个同名的键我知道。我认为在提供的示例中有一个错误:
?product\u name=asd&product\u name=sss
-只有
sss
作为
product\u name
@sklwebdev抱歉,我不太清楚,我说的是返回http\u build\u query()函数,因为我将在url中传递该数据以发出请求,这是有效的,而不是使用http\u build\u query()。我只想看看我的其他数据谢谢!