2016-10-02 7 views
2

У меня есть массив и на основе идентификатора, который я должен вставить в другую таблицу. Но проблема в том, что массив выполняется несколько раз. Предположим, что у меня этот идентификатор 1 в 3 раза, id 2 - 2 раза. общая вставка данных 9 раз для id 1 и 4 раза для id 2. Что мне не хватает. Мой кодцикл foreach, выполняющийся несколько раз

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); 
     } 
    } 
} 
+0

Пожалуйста показать массив '$ this-> request-> данные [«other_source_options»] 'должен видеть то, что он содержит, прежде чем придумать решение –

+0

массива ( \t (ИНТ) 0 => '1', \t (целое) 1 => '1', \t (целое) 2 => '1', \t (целое) 3 => '2', \t (INT) 4 => '2' ) – Amir

+0

id 1 идет 3 раза, так мы будем называть функцию 3 раза? А функция 2 дважды? –

ответ

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

благодарит AddWeb. Но я решил это по-другому. Полностью удалена массив other_souce_options. – Amir

Смежные вопросы