php循环遍历带有重复索引的数组

时间:2013-12-25 06:19:40

标签: php arrays indexing duplicates

我正在尝试循环使用重复索引的数组。但它只打印3次而不是全部。我想打印数组中的所有值是否可能?

这是我的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
)

2 个答案:

答案 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';

分配给键13的较新数据会覆盖以前的数据。

答案 1 :(得分: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);
  }