为什么数组会保留重复数据


Why does array keep Duplicate Data

在使用PHP时,处理与数据库(MySQL)的连接

$result = mysql_query('select * from products');
$row = mysql_fetch_array($result);

昨天发现数组$row里面有重复的数据。

首先,您从数据库中选择数据,这些索引排列在索引中,例如:$row[0] = ID;您还可以找到$row['ID'] = ID.

所以这只是框架的一个功能,它以虚拟方式复制数据,或者这些数据在数组中存储两次。

若要仅获取一个值集,需要将第二个参数传递给mysql_fetch_array。"MYSQL_ASSOC"获取关联数组,或"MYSQL_NUM"获取普通数组。例:

$row = mysql_fetch_array($result, 'MYSQL_ASSOC')

这将返回:

$row['id']

文档

直接来自手册:

mysql_fetch_array — 将结果行作为关联数组获取,一个 数字数组,或两者兼而有之

该函数的原型说

array mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )

这意味着它默认返回两个数组 - 也就是说 - 复制信息

mysql_fetch_array将

结果行作为关联数组和/或数字数组获取。请参阅:mysql_fetch_array。

$result中的每一行都有一个索引、一个名称和一个值。您可以按索引或名称查找行的值。

请参阅文档以了解mysql_fetch_array()

默认设置是获取同时包含数字数组和关联数组的数组。请参阅 PHP 手册来更改它。