php - 如果数组包含来自另一个数组的字符串,则删除
问题描述
所以这个想法是从一个数组中删除其他数组的数字列表,但它只是删除第一个,任何帮助解决这个问题将不胜感激。
$my_array = array("Sandra Loor,593984076233","Adrian,593998016010","Lucas,593999843424");
function myFilter($string) {
$to_remove = array("593984076233","593998016010");
foreach($to_remove as $remove) {
return strpos($string, $remove) === false;
}
}
$newArray = array_filter($my_array, 'myFilter');
foreach ($newArray as $val){
echo $val.'<br>';
}
解决方案
另一种方法是使用 preg_grep 在数组中搜索要删除的项目,然后使用 array_diff 删除它们。
$my_array = array("Sandra Loor,593984076233","Adrian,593998016010","Lucas,593999843424");
$to_remove = array("593984076233","593998016010");
$to_remove = "/" . implode("|", $to_remove) . "/";
$match = preg_grep($to_remove, $my_array);
$filtered = array_diff($my_array, $match);
var_dump($filtered);
// Lucas,593999843424
您也可以像这样将它捆绑到一个衬里:
$my_array = array("Sandra Loor,593984076233","Adrian,593998016010","Lucas,593999843424");
$to_remove = array("593984076233","593998016010");
$filtered = array_diff($my_array, preg_grep("/" . implode("|", $to_remove) . "/", $my_array));
var_dump($filtered);
推荐阅读
- excel - 如何修复编译错误:属性的无效使用
- webgl - 什么是 mipmapping 和二次幂错误?
- azcopy - 如何检查我是否正确安装了 azcopy v10
- database - 用于简单课程共享应用程序的 NoSQL 数据库架构设计
- mariadb - Disable strict mode on MariaDB
- python-3.x - 为什么我得到 AttributeError:'Series' 对象没有属性 'to_datetime' 和 AttributeError:'Series' 对象没有属性 'concat'
- jupyter - 如何创建 jupyter_notebook_config.py 文件?
- excel - 使用 VB.NET 将公式添加到考虑未知列的 Excel 电子表格
- java-8 - JGraphT:如何使用 JSONImporter 导入带标签边的 DirectedMultigraph
- c# - 是否可以在执行代码之前加载服务器端 Blazor 页面 HTML?