如何更改结果集中的列名称并使用修改后的列名称在 PHP 中创建新结果集

发布于 2024-11-25 12:15:06 字数 597 浏览 0 评论 0原文

示例:我当前的结果集:

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"}

我不希望这影响我的数据库中的列名称。仅结果集。

Example: my current result set:

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"}

I want a new result set as :

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"}

I dont want this to affect the column names in my database. only the result set.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

缪败 2024-12-02 12:15:06

向我们展示您的查询.. 例如,如果您正在执行以下查询:

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 语句。

Show us your query.. If you're doing, for example, the following query:

SELECT class_id, class FROM table;

Change it to this:

SELECT class_id AS new_id, class AS new_class FROM table;

Changing it in the query is hands-down the best way to do it, as you're not having to do any extra work within PHP, however you could also amend them in PHP, of course.

// where $resultset is your original results..
foreach ($resultset as &$result) {
    $result_ = array('new_id' => $result['class_id'], 'new_class' => $result['class']);
    $result = $result_;
}

Note that neither of these methods would affect your database columns. The only way to do that would be via an ALTER|MODIFY TABLE statement.

等风来 2024-12-02 12:15:06

试试这个

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);

try this

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);
日裸衫吸 2024-12-02 12:15:06

在foreach循环中。使用现有结果集中所需的列创建一个新数组。

In foreach cycle. Create a new array with needed to you colums from existing result set.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文