我有一个数组,如下所示:
"sort" : [
{
"book" : {
"mode" : "avg",
"order" : "asc",
"nested_path" : "favouriteOfUsers",
"nested_filter" : {
"term" : { "favouriteOfUsers.id" : 1234 }
}
}
}
]
我有一个字符串变量:
$array = array(
'hello',
'world',
'lorem',
'ipsum',
'what',
'is',
'reality'
);
因此,如果$terms = 'Hello World is reality!';
包含$array
中的任何字词,那么我想从数组中删除它们。因此,在这种情况下,$terms
将最终成为:
$terms
实现这一目标的最佳方法是什么?
答案 0 :(得分:2)
$terms = 'Hello World is reality!';
$result = array_filter(array_map(function ($word) use ($terms) {
if (!stristr($terms, $word)) {
return $word;
}
},$array));
输出:
array(3) {
[2] =>
string(5) "lorem"
[3] =>
string(5) "ipsum"
[4] =>
string(4) "what"
}
答案 1 :(得分:-2)
您需要先将字符串分解并将其转换为数组。
$termsArray = explode(" ", $terms);
然后简单地将它与第一个数组区分开来。
$result=array_diff($array,$termsArray);
这将返回$ termsArray中不存在的元素。