在PHP中打印多维数组时出现未定义的偏移量

时间:2018-10-08 12:21:09

标签: php arrays

我在PHP中有一个多维数组,看起来像这样

$names_of_tragedies=array(
      $row["Character_code"]=>array(
         ($another_counter)=>$temp_string)
                          )

我正在创建一个名为$names_of_tragedies.

的数组

它有几个子集或子数组,每个子数组都命名为$row["Character_code"],而每个子数组的"Character_Code"都不同。

这些子数组中的每个子数组中都有另一个数组,头字段称为$another_counter$another_counter是一个数值,因此范围是1到固定数字。

我正确输入了数据。我检查了问题出在打印上。

虽然我可以访问每个子数组$row["Character_code"],但是我只能访问最后的子数组$another_counter

例如,如果我有一个子数组,其中$row["Character_code"]='Prometheus''Prometheus'仅具有一个值为'APB'的子子数组[1],我可以使用< / p>

echo $names_of_tragedies[$row["Character_code"]][$another_counter];

当子子数组具有多个值时,会发生此问题。

例如,如果我有一个子数组,其中$row["Character_code"]='Antigone''Antigone'有5个子子数组 [1],[2],[3],[4]和[5] ,其值为 [1] ='ASAT',[2] ='SANTIGONE',[3] ='SOTK',[4] ='SOAC'和[5] ='EPW'

然后创建一个循环,其中变量$another_counter的值从1变为5,并使用$row["Character_code"]='Antigone

echo $names_of_tragedies[$row["Character_code"]][$another_counter];

仅成功返回EPW的值。对于 $ another_counter = 1,2,3或4 的其他情况,

  

未定义偏移:1或未定义偏移:2或未定义偏移:3或   未定义的偏移量:4

。只有当我达到最终值5时,它才会显示数据“ EPW”。

不知何故,计数器似乎设置为最后一个值或唯一值。如何打印较早的子阵列?

1 个答案:

答案 0 :(得分:0)

您在填充该数组的位置显示的代码似乎每次都覆盖$row["Character_code"]下的数组,而不是实际上添加

那四行初始行可能应该是这样的:

$names_of_tragedies[$row["Character_code"]][$another_counter] = $temp_string;

这会将所有$temp_string添加到$names_of_tragedies[$row["Character_code"]]的数组中,并使用$another_counter作为每个项目的键。