Foreach循环执行多次


foreach loop executing multiple times

我有一个数组,基于id,我必须插入到不同的表中。但问题是这个数组执行多次。假设我有这个id 1 3次,id 2 2次。总数据插入id 1 9次,id 2 4次。我错过了什么?我的代码

if (!empty($this->request->data['other_source_options'])) {
    foreach ($this->request->data['other_source_options'] as $value) {
      if ($value == 1) {
           $this->__function_name_1(1);
         }
      if ($value == 2) {
           $this->__function_name_2(2);
          }
      if ($value == 3) {
          $this->__function_name_3(3);
          }
      if ($value == 4) {
          $this->__function_name_4(4);
        }
    }
}

可以使用array_unique函数(参考此处)。你可以使用下面的代码:

 <?php
  if (!empty($this->request->data['other_source_options'])) {
  $arrUnique = array_unique($this->request->data['other_source_options']);
foreach ($arrUnique as $value) {
  if ($value == 1) {
       $this->__function_name_1(1);
     }
  if ($value == 2) {
       $this->__function_name_2(2);
      }
  if ($value == 3) {
      $this->__function_name_3(3);
      }
  if ($value == 4) {
      $this->__function_name_4(4);
    }
}
 }
   ?>