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

php循环遍历具有重复索引的数组,php,arrays,indexing,duplicates,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 $vid

我正在尝试循环遍历具有重复索引的数组。但它只打印了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
)

嗯,重复的索引相互抵消。所以这是预期的行为。因此,当您在代码中设置此选项时:

$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
的较新数据将覆盖以前的数据。

请避免重复输入钥匙,否则请尝试此操作

  $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);
  }

您正在更改数组索引3和1的值两次。因此,$data['Video']中总共只有3个数组,它将覆盖该索引处的值…很好的解释+1,但它们不会“否定”在我看来更好的定义应该是“覆盖”或“覆盖”