【发布时间】:2018-03-16 23:07:35
【问题描述】:
这就是easticsearch查询逻辑的全部内容......我需要使用这样的数组发送查询:
`"query" => array:2 [▼
"match" => array:2 [▼
"location" => array:2 [▼
"query" => "USA"
],
"match" => array:2 [▼
"car" => array:2 [▼
"query" => "FORD" ]
]
]`
当我们尝试生成具有相同键的数组时,问题就开始了:
$rules['query'] = [];
foreach ($field_value_array as $key => $value) {
$match['match'][$key] = [
'query' => $value ];
$rules['query'] = $match;
}
PHP 会自动删除它们,只留下最后一个。 array_push 函数在这种情况下不起作用。
你是我最后的希望。
【问题讨论】:
-
"match"数组中不能有两个"match"键。你的意思是:"query"=>[0=>['match'=>[...]],1=>['match'=>[...]]? -
系统调用是正确的。您不能有重复的密钥。请参阅this 答案。
标签: php arrays loops multidimensional-array foreach