2013-04-11 216 views
0

我正在逐行地将数据库查询的结果写入数组,然后我将自己的行添加到数组的最后一个索引。我使用谷歌的开发工具,以查看其是如下所述阵列的结果:PHP关联数组引用

10: {strat_id:1, x_id:1, outcome_id:52, date:1364655600, status:0, rank:1,…} 
> 
strat_id: "1" 
status: "0" 
date: "1364655600" 
x_id: "1" 
outcome_id: "52" 
rank: "1" 

11: {strat_id:4, x_id:1, outcome_id:49, date:1365674916, status:1, rank:1,…} 
> 
strat_id: 4 
status: "1" 
date: 1365674916 
x_id: 1 
outcome_id: 49 
rank: 1 

的“>”字符表示,其中我已扩展的索引。索引10是数据库的最后一行,您可以看到扩展后的值由引号环绕。索引11是我手动添加的数据,当展开时,您可以看到这些值未被引用包围(状态除外)。

为了保持一致性,我该不该打扰这个细节?为了添加到阵列中我使用:

$newarray=array("strat_id"=>$_POST['gridID']+1, "x_id"=>$_SESSION['xID'], "outcome_id"=>$_POST['cellID']+1, "date"=>time(), "status"=>$_POST['type'], "rank"=>1); 

数据库我与得到的结果:

$result->fetch_array(MYSQLI_ASSOC) 

感谢。

+2

你有什么问题想问我们吗? – 2013-04-11 10:46:51

+0

引号是将该值标记为一个字符串。如果没有引号,该值将被解释为数字(int,long,float等) – 2013-04-11 10:49:23

+0

您是否希望它们是数字或字符串? – Passerby 2013-04-11 10:53:31

回答

1

为了保持一致性,我该不该打扰这些细节?

这取决于你将如何使用它们。如果你只需要显示,那很好;但是如果你需要做一些比较/计算(考虑到你有date值),最好将它们转换为数字。

您可以尝试

$record[]=array_map("intval",$result->fetch_array(MYSQLI_ASSOC)); 

为了让每为整数,也是后来

$record[]=array("strat_id"=>intval($_POST['gridID'])+1, 
    "x_id"=>$_SESSION['xID'], 
    "outcome_id"=>intval($_POST['cellID'])+1, 
    "date"=>time(), 
    "status"=>intval($_POST['type']), 
    "rank"=>1); 

所以要拥有一个具有每一个元素为整数多维数组。