PHP关联键阵列与数字键阵列

时间:2012-12-18 20:12:35

标签: php mysql

  

可能重复:
  Fastest way to add prefix to array keys?

我有一个这样的数组:

0 => value 1,
1 => value 2,

我想这样做:

keyname1 => value 1,
keyname2 => value 2,

在mySQL数据库中,所有列都有名称,但数组使用数字而不是名称。是否有PHP或mySQL命令告诉它如何写密钥?

3 个答案:

答案 0 :(得分:1)

array_walk($array, function($value, &$key){ $key = 'prefix' . $key;});

答案 1 :(得分:1)

获取结果集后,使用循环遍历它,并将列名称keys添加到数组中。这是一个例子,

foreach($resultset as $k => $v)
 $array[$k] = $v;

我假设$resultset是一个数组。

注意:不推荐使用Mysql_ *扩展程序。请尝试使用Mysqli_ *或PDO扩展名。

答案 2 :(得分:1)

回应你的评论:

您正在从mySQL数据库中检索数据,因此您只需将数据作为关联数组获取:

PDO:

//just as an example
$stmt = $pdo->prepare('SELECT foo, bar from foobar.foobaz WHERE xyz = :xyz');
$stmt->execute(array(':xyz' => $someValue));
$results = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
    array_push($results, $row);
}

应该这样做。当然,有mysql_fetch_assoc,但由于mysql_*扩展已被弃用,我不打算为此烦恼,只需切换到PDO,如果你还没有。

如果您因某些原因对PDO不满意,请查看mysqli_*,在这种情况下,循环如下所示:

while($row = $stmt->fetch_assoc())
{//using OO api
    array_push($results, $row);
}
//or
while($row = mysqli_fetch_assoc($result))
{//using OO api
    array_push($results, $row);
}

完整示例[在文档页面上](http://www.php.net/mysqli_fetch_assoc