可能重复:
向数组键添加前缀的最快方法?
我有一个这样的数组:
0 => value 1,
1 => value 2,
我想这样做:
keyname1 => value 1,
keyname2 => value 2,
在 mySQL 数据库中,所有列都有名称,但数组使用数字而不是名称。是否有 PHP 或 mySQL 命令告诉它如何编写密钥?
可能重复:
向数组键添加前缀的最快方法?
我有一个这样的数组:
0 => value 1,
1 => value 2,
我想这样做:
keyname1 => value 1,
keyname2 => value 2,
在 mySQL 数据库中,所有列都有名称,但数组使用数字而不是名称。是否有 PHP 或 mySQL 命令告诉它如何编写密钥?
array_walk($array, function($value, &$key){ $key = 'prefix' . $key;});
获取结果集后,使用循环遍历它,并将列名添加keys
到数组中。这是一个例子,
foreach($resultset as $k => $v)
$array[$k] = $v;
我假设这$resultset
是一个数组。
注意:不推荐使用 Mysql_* 扩展。尝试改用 Mysqli_* 或 PDO 扩展。
回应您的评论:
您正在从 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