2011-09-28 1 views
1

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

$arr = array(); 
foreach($_POST['ids'] as $id) 
{ 
    $arr[$id] = GetStuff($id); 
} 

UPDATE: Похоже, массив был заполнен отлично. Я пытаюсь вернуть содержимое массива, выполнив echo json_encode($arr), но ответ пуст.

Вот результат var_dump ($ _ POST);

array(1) { 
    ["ids"]=> 
    array(18) { 
    [0]=> 
    string(6) "156795" 
    [1]=> 
    string(6) "156800" 
    [2]=> 
    string(4) "4292" 
    [3]=> 
    string(6) "796053" 
    [4]=> 
    string(6) "660520" 
    [5]=> 
    string(4) "4293" 
    [6]=> 
    string(4) "4287" 
    [7]=> 
    string(6) "488339" 
    [8]=> 
    string(6) "837701" 
    [9]=> 
    string(7) "1152093" 
    [10]=> 
    string(7) "1186434" 
    [11]=> 
    string(7) "1324432" 
    [12]=> 
    string(6) "796051" 
    [13]=> 
    string(6) "144860" 
    [14]=> 
    string(5) "15065" 
    [15]=> 
    string(7) "1324434" 
    [16]=> 
    string(5) "13066" 
    [17]=> 
    string(4) "6969" 
    } 
} 
+0

Определить «не работает». Код - O.K. для этой цели, как вы отправляете массив? Можете ли вы дать нам var_dump ($ _ POST) ;? – halfdan

+0

У вас есть $ _POST [ids] или $ _POST ['ids'] в вашем коде? – Scoutman

+0

извините. обновил мой вопрос с более подробной информацией. –

ответ

1
foreach($_POST['ids'] AS $i=>$id) { 
    //do stuff 
} 

Не забудьте про кавычки ..

+0

мои извинения, я не копировал код дословно. У меня есть одинарные кавычки вокруг ids в $ _POST ['ids'], так что это не проблема. –

0
$arr = array(); 
foreach($_POST['ids'] as $id) 
{ 
    $arr[$id] = GetStuff($id); 
} 

Примечание клещ знаки вокруг идентификаторов в $ _POST.

+0

мои извинения, я не копировал код дословно У меня есть одиночные кавычки вокруг ids в $ _POST ['ids'], так что это не проблема. –

0

Это должно работать:

foreach($_POST['ids'] as $id) 
{ 
    $arr[$id] = $_POST['ids'][$id]; 
} 

или даже быстрее, если вы просто хочешь массив идентичен посланные идентификаторы:

$arr = $_POST['ids']; 

если я не недопонимание вопроса.

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