我尝试搜索数组并取消设置某些元素(如果它们存在于其他数组中)。
[scores] => Array
(
[1100190] => 0.15783204288267
[1100213] => 0.15893037336024
[2100230] => 0.16258444005331
[1100516] => 0.16554697418536
[1100973] => 0.16967437235894
)
[explanation codes] => Array
(
[1100190] => 0
[1100213] => 0
[2100230] => 0
[1100516] => 0
[1100973] => 0
)
所以,我想要例如关键" [1100190]"即将被删除。这就是我现在所拥有的:
// filter out keys we don't want
for($j=0; $j < count($filterData); $j++) {
$position = array_search($filterData[$j], $recs);
if($position != false) {
foreach($recs as $key => $arr) {
unset($recs[$key][$position]);
}
}
}
在$ filterData中我有例如:11111,1100190。当我尝试回显它并且我的过滤器无法正常工作时,我没有得到$ position的任何内容。 提前谢谢。
解决方案:
foreach($recs as $key => $arr) {
$position = array_search($key, $filterData);
if($position != false) {
unset($recs[$key]);
}
}
这就是诀窍,感谢帮助,特别是keune。
答案 0 :(得分:1)
根据建议,我会使用array key exists
foreach ($filterData as $k => $v)
{
if (array_key_exists($k, $recs))
{
unset($recs[$k]);
}
}
答案 1 :(得分:1)
您需要在$recs
数组的每个键中进行搜索。试试这个:
for($j=0; $j < count($filterData); $j++) {
foreach($recs as $key => $arr) {
$position = array_search($filterData[$j], $arr);
if($position !== false) {
unset($recs[$key][$position]);
}
}
}