我想过滤和删除数组中的项目。是否可以使用array_filter()?
//I want to delete these items from the $arr_codes
$id = 1223;
$pin = 35;
//Before
$arr_codes = Array('1598_9','1223_35','1245_3','1227_11', '1223_56');
//After
$arr_codes = Array('1598_9','1245_3','1227_11', '1223_56');
谢谢!
答案 0 :(得分:3)
您可以使用array_search然后unset找到您感兴趣的值的索引。
$i = array_search('1223_35',$arr_codes);
if($i !== false) unset($arr_codes[$i]);
答案 1 :(得分:0)
array_filter不接受userdata(参数)。 array_walk()
。但是,迭代器函数都不允许修改回调中的数组结构。
因此,array_filter()
是适当的功能。但是,由于您的比较数据是动态的(根据您的评论),您将需要另一种方式来获取比较数据。这可以是函数,全局变量,也可以构建快速类并设置属性。
以下是使用函数的示例。
array_filter($arr, "my_callback");
function my_callback($val) {
return !in_array($val, get_dynamic_codes());
}
function get_dynamic_codes() {
// returns an array of bad codes, i.e. array('1223_35', '1234_56', ...)
}