我在另一个问题中回答了以下代码:
$user_id_ary = array_filter($user_id_ary, function($var) use ($is_anonymous_ary) {
return !(isset($is_anonymous_ary[$var]) && $is_anonymous_ary[$var] === true);
});
它在我的localhost上工作得非常棒,它运行在PHP 5.3上,意味着它支持闭包(又名匿名函数),但它不能在我的在线托管上运行,它在PHP 5.2上运行。
在PHP 5.3之前是否有替代版本的代码?
感谢。
答案 0 :(得分:2)
您需要制作一个真实的函数进行检查,并将其名称传递给array_filter
。
function filter_user_id_ary($var) {
global $is_anonymous_ary;
return !(isset($is_anonymous_ary[$var]) && $is_anonymous_ary[$var] === 1);
}
$user_id_ary = array_filter($user_id_ary, 'filter_user_id_ary');
答案 1 :(得分:1)
$new_array = array();
foreach($user_id_ary as $var){
if(!(isset($is_anonymous_ary[$var]) && $is_anonymous_ary[$var] === 1))
$new_array[$var] = $user_id_ary[$var];
}
答案 2 :(得分:1)
对于您的原始任务有一个更简单的解决方案(更容易,我的意思是不涉及回调函数):
$user_id_ary = array_diff($user_id_ary, array_keys(array_filter($is_anonymous_ary)));