2013-05-24 2 views
0

У меня такое смешное чувство, что это будет что-то простое, что мои усталые глаза пропустили.PHP - foreach looping double

Учитывая следующий массив $query:

Array ([report_id] => 19 [facebook_id] => Array ([0] => 12345678 [1] => 12345678 [2] => 12345678 [3] => 12345678 [4] => 12345678)) 

(Никогда не возражаете значения [facebook_id] массива, я просто положить, что там для примера)

мне нужно перебрать и каждое значение к функции. Я использую следующий цикл foreach, и когда я проверяю, сколько раз он зацикливается, он проходит через double.

foreach ($query as $value) { 
    $report_id = $query['report_id']; 
    $looper = $query['facebook_id']; 
    $i = 0; 
    foreach ($looper as $inner) { 
     if ($i == 0) { 
      $facebook_id_list = $inner; 
     } else { 
      $facebook_id_list = $facebook_id_list.'|'.$inner; 
     } 
     $i++; 
    } 
} 

Выходной сигнал, когда я повторяю все Спинка:

19 
12345678|12345678|12345678|12345678|12345678 
19 
12345678|12345678|12345678|12345678|12345678 

Я в конце концов собирается взорвать $facebook_id_list в моей функции, поэтому я конкатенации многомерный массив в переменную ,

Что мне не хватает?

+0

Вы закончили писать свое жало, не добавляя к нему, также звучит так, будто вы должны создавать новый массив вместо жало. –

+0

in ** $ looper = $ query ['facebook_id']; ** .. это 'facebook_id' как строка или var? – matzone

+0

Почему бы не '$ facebook_id_list = implode ('|', $ query ['facebook_id'])'? – Barmar

ответ

1

Ваш цикл может быть заменен:

$report_id = $query['report_id']; 
$facebook_id_list = implode('|', $query['facebook_id']); 

Нет цикла, нет зацикливания дважды.

+0

Моя ошибка не была ясной - этот массив может возвращать более одного набора значений в зависимости от SQL-запроса. –

+0

Массив, который вы показали, представляет собой только одну строку, он не может иметь более одного набора значений. Вам нужно повторить это для каждой строки. – Barmar

+0

ОК - Я думаю, что моя проблема была (посмотрев на нее пару часов спустя), если бы я получил несколько результатов от SQL, это были бы два массива. Я собираюсь идти вперед и принять ваш ответ. –

0

Это цикл дважды, потому что у вас есть 2 элемента в $ query, и вы устанавливаете $ loop_id и $ looper внутри цикла, что кажется бессмысленным, поскольку вы не используете значение $ где-нибудь.

Удачи вам!