7

开门见山...

我有一个如下所示的数组 ( $is_anonymous_ary):

array (
  [80] => 1
  [57] => 1
  [66] =>
  [60] => 
  [90] => 1
)

$user_id_ary还有另一个像这样的数组 ( ):

array (
  [0] => 80
  [1] => 30
  [2] => 57
  [3] => 89
  [4] => 66
  [5] => 60
  [6] => 90
)

我需要$user_id_ary根据第一个数组取消设置值。因此,如果 from 的$is_anonymous_ary值为 1(真),则从该数组中获取键,检查$user_id_ary并取消设置具有$user_id_ary来自键的值的键$is_anonymous_ary

我稍微复杂了描述,这就是我需要的最终结果:

user_id_ary = array(
  [0] => 30
  [1] => 89
  [2] => 66
  [3] => 60
)

如您所见,所有$is_anonymous_ary具有TRUE值的键都在第二个数组中消失了。它将第一个数组中的键作为第二个数组中的值。

希望我说清楚了。

4

4 回答 4

6

尝试array_filter

$user_id_ary = array_filter($user_id_ary, function($var) use ($is_anonymous_ary) {
  return !(isset($is_anonymous_ary[$var]) && $is_anonymous_ary[$var] === 1);
});
于 2012-10-04T11:58:43.500 回答
0
$user_id_ary = array_diff($user_id_ary, array_keys(array_filter($is_anonymous_ary)));
于 2012-10-04T21:48:25.750 回答
0

多么容易:)

$new_array =NULL;
foreach($is_anonymous_ary as $key=>$value){

  $new_array[] = array_search($key, $user_id_ary);
  unset($is_anonymous_ary[$key]);
}
$user_id_ary =  $new_array;
于 2012-10-04T12:01:45.410 回答
0
foreach($user_id_ary as $id){
   if($is_anonymous_ary[$id] == '1'){
      unset($d);
   }       
}

如果这不起作用,请尝试遍历 user_id_array 中的每个元素

于 2012-10-04T12:03:55.807 回答