foreach循环执行多次

时间:2016-10-02 13:12:29

标签: php cakephp foreach

我有一个数组,基于我必须在不同的表中插入的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);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用array_unique函数(请参阅here)。 您可以使用以下代码:

 <?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);
    }
}
 }
   ?>