我在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”。
不知何故,计数器似乎设置为最后一个值或唯一值。如何打印较早的子阵列?
答案 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
作为每个项目的键。