【发布时间】:2020-07-17 13:04:12
【问题描述】:
我进行了一个 Ajax 调用,以便像这样过滤数组中的值:
<?php
$dataset = array_filter($_REQUEST['dataset'], function ($v){
return filterArray($_REQUEST['keyword'], $v);
});
function filterArray($needle,$haystack){
$needle = strtolower($needle);
foreach($haystack as $v){
if (stripos($v, $needle) !== false){
return true;
}
};
}
echo json_encode($dataset, JSON_UNESCAPED_UNICODE);
?>
感谢这里的人们的帮助,它现在就像一个魅力。
但是,我需要一些更复杂的东西:
我有两个几乎相同的数组通过 AJAX 导入到 php 文件中。我们称它们为“cleanDataset”和“rawDataset”。
它们基本上是克隆,但“rawDataset”是原始的,而“cleanDataset”是一个副本,没有任何 html 标记和我不想成为搜索的一部分的不需要的字符。差异虽小,但数量众多且无法预测。
所以,我想针对选定的关键字搜索“cleanDataset”,但我想相应地过滤“rawDataset”,并返回到 javascript 文件。
不幸的是,在上面的代码中,被搜索的数组也是被过滤的数组。
所以基本上,这是我尝试过的,但没有奏效:
<?php
$rawDataset = array_filter($_REQUEST['rawDataset'], function ($v){
return filterArray($_REQUEST['keyword'], $_REQUEST['cleanDataset']);
});
function filterArray($needle,$haystack){
$needle = strtolower($needle);
foreach($haystack as $v){
if (stripos($v, $needle) !== false){
return true;
}
};
}
echo json_encode($rawDataset, JSON_UNESCAPED_UNICODE);
?>
尝试使用 console.log() 显示输出数组时,我收到“jSon Parse error: unrecognized token '
任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: php output comparison array-filter