2013-12-25 4 views
0

Я пытаюсь перебрать массив с повторяющимися индексами. Но он печатает только 3 раза не все. Я хочу, чтобы все значения в массиве были возможны?php loop через массив с повторяющимся индексом

Вот мой PHP код:

$data['Video'][0]['name']='a'; 
$data['Video'][1]['name']='b'; 
$data['Video'][1]['name']='c'; 
$data['Video'][3]['name']='d'; 
$data['Video'][3]['name']='e'; 

foreach ($data['Video'] as $video) { 
    print_r($video); 
} 

А вот выход из этого кода:

Array 
(
    [name] => a 
) 
Array 
(
    [name] => c 
) 
Array 
(
    [name] => e 
) 
+0

Вы меняете значение индекса массива 3 и 1 в два раза. Таким образом, всего в массиве $ data ['Video'] – Subin

+0

будет только 3 массива, это будет перезаписывать значение по этому индексу ... –

ответ

0

Пожалуйста, во избежание дублирования записи ключей в противном случае попробовать это,

$data['Video'][]['name']='a'; 
    $data['Video'][]['name']='b'; 
    $data['Video'][]['name']='c'; 
    $data['Video'][]['name']='d'; 
    $data['Video'][]['name']='e'; 

    foreach ($data['Video'] as $video) { 
     print_r($video); 
    } 
+0

Он решил мою проблему. благодаря –

1

Ну, дублирующие указатели отрицают друг друга. Так что это ожидаемое поведение. Поэтому, когда вы устанавливаете это в вашем коде:

$data['Video'][0]['name']='a'; 
$data['Video'][1]['name']='b'; 
$data['Video'][1]['name']='c'; 
$data['Video'][3]['name']='d'; 
$data['Video'][3]['name']='e'; 

Это действительно просто означает, что это:

$data['Video'][0]['name']='a'; 
$data['Video'][1]['name']='c'; 
$data['Video'][3]['name']='e'; 

более новых данных, назначенных клавишам 1 и 3 перезаписать, что было ранее там.

+0

приятное объяснение +1, но они не «отрицают», по моему мнению, лучшее определение будет «перезаписывать», или "override" –

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