我想问一下php中对数组的操作。
我正从数据库中的一个表中捕获两个单元格,这些表格的字符串格式为“1; 3; 6;”和整个第二个表 - 它在第一列中有数字,在第二列中有名字。我使用explode()
函数将第一个表中的字符串分成两个数组,将第二个表分成下面两个数组,每个数组都有一列。因此,当print_r()
用于这三个数组时,我会看到:
使用error_reporting(E_ALL); ini_set('display_errors',1);
第一张表
“amount”将字符串转换为名为$ship_storage_parted_amount
数组的数组 ( [0] =>五 [1] => 10 [2] => )“ware id”将字符串转换为名为
$ship_cargo_bay_parted
数组的数组 ( [0] => 1 [1] => 2 [2] => )第二个表格变为两个数组
$ware_id
和$ware_name
表包含7行
阵列 ( [0] =>排列 ( [ware_id] => 1 [name] =>能量电池 )[1] =>排列 ( [ware_id] => 2 [name] =>耗尽能量细胞 )
[2] =>排列 ( [ware_id] => 3 [name] =>蔬菜 )
[3] =>排列 ( [ware_id] => 4 [name] =>肉 ) )
我想要实现下一个目标:根据第二个表格中存储在第一个表格中的ID,在第二个表格中显示适当的相同名称。
因此,它应该看起来像:
通电能量电池x5
耗尽能量电池x10
当我试图向他们展示时:
echo $ware_name[$ship_cargo_bay-1]." x".$ship_storage_parted_amount[$ware_position];
它导致了这样的输出:
能量电池x
其中$ship_cargo_bay
包含所有捕获的字符串“ware id”,$ware_position
是金额计数器。金额计数器指向空的第3个数组元素;但当我用for()重新组织打印
for($i=0;$i}lowerthan{$ware_counter;$i++)
{echo $ware_name[$ship_cargo_bay_parted[$i]]." x".$ship_storage_parted_amount[$i];}
我现在有了
x5 x10 x x
我的愚蠢知识在此结束。据我所知,第一次印刷尝试根本不起作用,但为什么我在第二次尝试中得到这样的输出是我的理解。
答案 0 :(得分:0)
终于找到了原因,我犯了错误。在仔细检查每个变量的名称后,打印出所包含的内容,我发现我在某种程度上错误地改变了变量名称。
for($i=1;$i<$ware_counter;$i++)
{
echo $ware_name[$ship_storage_parted[$i]]." x ".$ship_storage_parted_amount[$i]."<br/>";
}
这几行完全符合我的需要。因此,我把它放在这里 - 也许有人会遇到类似的问题。