Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在下面的场景中,如何集成两个for/foreach循环?_Php_Arrays_Foreach - Fatal编程技术网

Php 在下面的场景中,如何集成两个for/foreach循环?

Php 在下面的场景中,如何集成两个for/foreach循环?,php,arrays,foreach,Php,Arrays,Foreach,我有两个数组,如下所示: $user_ids = Array ( [0] => 159a8a6f1c00c5c4d5d0daaab2aa4227 [1] => a39777761f7816031aec676c80c3a8ad [2] => 348703d858f2f36f3fed0da29d04a905 [3] => 05ce989ed54dcd3ecca8af9e0e373c5c [4] => 2fe40d28847aad4

我有两个数组,如下所示:

$user_ids = Array
(
    [0] => 159a8a6f1c00c5c4d5d0daaab2aa4227
    [1] => a39777761f7816031aec676c80c3a8ad
    [2] => 348703d858f2f36f3fed0da29d04a905
    [3] => 05ce989ed54dcd3ecca8af9e0e373c5c
    [4] => 2fe40d28847aad4f23ebf74cd93b7235
    [5] => 717dce4998cc4f2b926a7a731c2ee651
    [6] => 5d3dbc660f5896f790ad15cc40b14209
    [7] => 41e400183bb54c2dd25dcd2f062a7ca9
    [8] => a8e0f96c0f68242df08c91d58e14d5aa
    [9] => ddb29b7d35a24b5bad77bab752ec921b
    [10] => eaf925c5e43f387d7d0eba7ee45856e3
    [11] => 5291d6ee6c5b577514e832f077a496ca
    [12] => 89f9e41b866c8e1c09e66e183a4b9265
    [13] => 836d8a3e18888ee2b79b9636a8227c08
    [14] => f9f3830700718df102c6c54bc004bdf9
    [15] => 982e5d10baf398cb07a0ed388d8e1577
    [16] => eb461f406d36a46db88f59f4c0b7b7f1
    [17] => 9bfd556bd9ee849048690898a9d1ed3c
    [18] => 1f7ec7180354a8741d4e86949e5922fe
    [19] => 75cd2b01677ac49306caed58b26d4781
)

$user_status = Array
(
    [0] => enable 
    [1] =>  disable 
    [2] =>  enable 
    [3] =>  disable 
    [4] =>  disable 
    [5] =>  disable 
    [6] =>  disable 
    [7] =>  enable 
    [8] =>  disable 
    [9] =>  disable 
    [10] =>  disable 
    [11] =>  disable 
    [12] =>  disable 
    [13] =>  enable 
    [14] =>  disable 
    [15] =>  disable 
    [16] =>  disable 
    [17] =>  enable 
    [18] =>  disable 
    [19] =>  enable
)
第一个数组提供用户id,而另一个数组提供每个用户id的相应状态。因此,上述两个数组的元素数始终相等。 现在我想要实现的是为user\u id数组的每个元素(user\u id)调用一个函数。但在此之前,我必须检查将在函数调用中使用的用户id的状态是否应为禁用。如果用户id的状态为enable,则不应调用该函数,并且下一个用户id应开始工作。我无法为这种情况写出正确的逻辑。你能帮我吗?提前谢谢。我尝试的PHP代码如下所示:

$user_ids = explode(',', $request['items']);
  $user_statuses = explode(',', $request['user_status']);
  $count = 0;
  foreach ($user_ids as $user_id) {
    foreach ($user_statuses as $user_status) { 
      if(user_status=='disable') {
        $objAdminUsers->UpdateUserStatus($user_id, $user_status); 
    $count++;
      }
    }
  }
也许是这样

$user_ids = explode(',', $request['items']);
  $user_statuses = explode(',', $request['user_status']);
  foreach ($user_statuses as $key => $user_status) { 
    if(user_status=='disable') {
      $objAdminUsers->UpdateUserStatus($user_ids[$key], $user_status); 
    }
  }
也许是这样

$user_ids = explode(',', $request['items']);
  $user_statuses = explode(',', $request['user_status']);
  foreach ($user_statuses as $key => $user_status) { 
    if(user_status=='disable') {
      $objAdminUsers->UpdateUserStatus($user_ids[$key], $user_status); 
    }
  }

你很接近。由于两个数组都包含偶数的值,因此可以在循环元素时获得
$key

 $user_ids = explode(',', $request['items']);
  $user_statuses = explode(',', $request['user_status']);
  $count = 0;
  foreach ($user_ids as $key => $user_id) {
    // $key contains the number between the brackets
      if($user_statuses[$key]=='disable') {
        $objAdminUsers->UpdateUserStatus($user_id, $user_statuses[$key]); 
    $count++;
      }
    }
  }

这样,您不需要第二个foreach循环,只需同时读取另一个数组即可。由于两个数组都包含偶数的值,因此可以在循环元素时获得
$key

 $user_ids = explode(',', $request['items']);
  $user_statuses = explode(',', $request['user_status']);
  $count = 0;
  foreach ($user_ids as $key => $user_id) {
    // $key contains the number between the brackets
      if($user_statuses[$key]=='disable') {
        $objAdminUsers->UpdateUserStatus($user_id, $user_statuses[$key]); 
    $count++;
      }
    }
  }

这样,您不需要第二个foreach循环,但只需同时读取另一个数组即可

这样做不需要嵌套foreach。这很容易处理。使用ID作为键和状态作为值创建一个新数组,然后循环遍历该数组并根据需要调用该函数:

$array = array_combine($user_ids, $user_statuses);
$array = array_map('trim', $array); // remove whitespaces
foreach ($array as $id => $status) {
    if($status == 'disable') {
        $objAdminUsers->UpdateUserStatus($id, $status); 
        $count++;
    }
}

执行此操作不需要嵌套的foreach。这很容易处理。使用ID作为键和状态作为值创建一个新数组,然后循环遍历该数组并根据需要调用该函数:

$array = array_combine($user_ids, $user_statuses);
$array = array_map('trim', $array); // remove whitespaces
foreach ($array as $id => $status) {
    if($status == 'disable') {
        $objAdminUsers->UpdateUserStatus($id, $status); 
        $count++;
    }
}

每个人只需要一个,就像这样:

  $user_ids = explode(',', $request['items']);
  $user_statuses = explode(',', $request['user_status']);
  $count = 0;
  foreach ($user_ids as $key => $user_id) {
      if($user_status[$key]=='disable') {
        $objAdminUsers->UpdateUserStatus($user_id, $user_status[$key]); 
        $count++;
      }
  }

你只需要每人一个,就像这样:

  $user_ids = explode(',', $request['items']);
  $user_statuses = explode(',', $request['user_status']);
  $count = 0;
  foreach ($user_ids as $key => $user_id) {
      if($user_status[$key]=='disable') {
        $objAdminUsers->UpdateUserStatus($user_id, $user_status[$key]); 
        $count++;
      }
  }
参考:

参考: