示例:我当前的结果集:
array(7) {[0]=>array(2)
{ ["class_id"]=>string(1) "1"["class"]=>string(3)"1st"}
{ ["class_id"]=>string(1) "2"["class"]=>string(3)"2nd"}
{ ["class_id"]=>string(1) "3"["class"]=>string(3)"3rd"}
我想要一个新的结果集:
array(7) {[0]=>array(2)
{ ["new_id"]=>string(1) "1"["new_class"]=>string(3)"1st"}
{ ["new_id"]=>string(1) "2"["new_class"]=>string(3)"2nd"}
{ ["new_id"]=>string(1) "3"["new_class"]=>string(3)"3rd"}
我不希望这会影响我的数据库中的列名。只有结果集。
答案 0 :(得分:3)
向我们展示您的查询..例如,您正在执行以下查询:
SELECT class_id, class FROM table;
将其更改为:
SELECT class_id AS new_id, class AS new_class FROM table;
在查询中更改它是最好的方法,因为你不需要在PHP中做任何额外的工作,当然你也可以用PHP修改它们。
// where $resultset is your original results..
foreach ($resultset as &$result) {
$result_ = array('new_id' => $result['class_id'], 'new_class' => $result['class']);
$result = $result_;
}
请注意,这些方法都不会影响您的数据库列。唯一的方法是通过ALTER|MODIFY TABLE
声明。
答案 1 :(得分:1)
试试这个
function rename_key(&$array, $oldkey, $newkey) {
// remember here we send value by reference using `&`
if(array_key_exists($oldkey,$array))
{
$array[$newkey] = &$array[$oldkey];
unset($array[$oldkey]);
}
return $array;
}
foreach($input as $k)
{
rename_key($k, 'class_id', 'new_id');
rename_key($k, 'class', 'new_class');
$output[]=$k;
}
echo "<pre>";
print_r ($output);
答案 2 :(得分:0)
在foreach循环中。根据现有结果集中的列创建一个新数组。