从mysql结果集中提取列的最佳方式是什么?我的结果集是这样的:如何从mysql结果集中提取列?
[0] = ('id'=>1, 'name'=>a),
[1] = ('id'=>2, 'name'=>b),
[2] = ('id'=>3, 'name'=>c)
我该如何从这个数组中提取'name'列?我可以使用for循环。但想知道是否有更好的可重用解决方案?
从mysql结果集中提取列的最佳方式是什么?我的结果集是这样的:如何从mysql结果集中提取列?
[0] = ('id'=>1, 'name'=>a),
[1] = ('id'=>2, 'name'=>b),
[2] = ('id'=>3, 'name'=>c)
我该如何从这个数组中提取'name'列?我可以使用for循环。但想知道是否有更好的可重用解决方案?
您可以使用array_map
来执行此操作。
function getName($elem) {
return $elem['name'];
}
$names = array_map('getName', $input);
// PHP 5.3.0 or higher allows anonymous functions
$names = array_map(function($e) { return $e['name']; }, $input);
$rows = array(
array('id'=>1, 'name'=>'a'),
array('id'=>2, 'name'=>'b'),
array('id'=>3, 'name'=>'c')
);
$names = array();
foreach ($rows as $row) {
$names[] = $row['name'];
}
使用一个简单的循环会比使用类似array_map(会导致更多的开销)快得多。速度差异可能高达100%。
你需要id列吗?为什么不告诉查询只提取名称列? – karim79 2010-05-07 20:29:33
@ karim79:这是简化的虚拟结果集。 – understack 2010-05-07 20:34:55
@understack - 有你,对不起评论。 – karim79 2010-05-07 20:38:41