Php 数组中返回2个相同的元素,mysql查询后,为什么?

Php 数组中返回2个相同的元素,mysql查询后,为什么?,php,mysql,arrays,pdo,Php,Mysql,Arrays,Pdo,我用PDO做了一个mysql查询,如下所示 $timestamp_query = "SELECT timestamp FROM change_me;"; foreach ($conn->query($timestamp_query) as $times ) { print_r($times); echo "<br>"; } Array ( [timestamp] => 2013-05-24 17:55:04 [0] => 2013-05-24

我用PDO做了一个mysql查询,如下所示

$timestamp_query = "SELECT timestamp FROM change_me;";

foreach ($conn->query($timestamp_query) as $times ) {
    print_r($times); 
    echo "<br>";
 }
Array ( [timestamp] => 2013-05-24 17:55:04 [0] => 2013-05-24 17:55:04 )
Array ( [timestamp] => 2013-05-24 18:00:05 [0] => 2013-05-24 18:00:05 )
Array ( [timestamp] => 2013-05-24 18:05:04 [0] => 2013-05-24 18:05:04 ) 

为什么每个数组中有两个相同的元素,而不是一个?

它会向您返回一个关联数组,以便您可以通过字段名或索引引用结果


例如,
$times['timestamp']
$times[0]

您需要将获取模式从PDO::fetch\u BOTH更改为PDO::fetch\u ASSOC

foreach ($conn->query($timestamp_query, PDO::FETCH_ASSOC) as $times ) 
这将更改它,使其仅以关联数组的形式返回数据

或者,如果只需要索引数组,则可以使用PDO::FETCH_数组,或者对于对象,可以使用PDO::FETCH_对象


可以找到更多信息

我远非PDO专家,但我认为
$times
是一行,您需要在
$times[0]
$times['timestamp']
之后才能获得值。因为您的
$conn->query($timestamp\u query)
是一个关联数组,您可以访问使用设置键或数字键返回的值。我相信这就是你们所看到的,
print\r()
向你们展示了这两个。