亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當它們具有相同的值時如何將結果連接成一個字符串

當它們具有相同的值時如何將結果連接成一個字符串

PHP
MM們 2023-03-26 14:27:00
我有一個使用 PHP 訪問的數據庫表。該表包含三列:id, name, group。下面是表格內容的示例:------------------------------------------------------| id   | name   | group                              |------------------------------------------------------| 1    | Lucy   | 1                                  || 2    | Jane   | 1                                  || 3    | Emily  | 2                                  || 4    | Anne   | 1                                  || 5    | Kim    | 3                                  || 6    | Carrie | 3                                  |------------------------------------------------------我像這樣在 PHP 中訪問我的表:SELECT * FROM table我想生成以下字符串,每組一個字符串:Lucy、Jane 和 Anne 是第 1 組(Lucy 的 id 是 1,Jane 的 id 是 2,Anne 的 id 是 4)。Emily 是第 2 組(Emily 的 ID 是 3)。Kim 和 Carrie 是第 3 組(Kim 的 ID 是 5,Carrie 的 ID 是 6)。我可以使用什么 PHP 函數從我的表的內容中自動生成這些字符串?
查看完整描述

1 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

你會做一個像這樣的 SQL 查詢:SELECT * FROM table在 php 端你會做一些類似的事情:


$groups = [];

foreach($data as $row) {

   if(!isset($groups[$row['group']]))

      $groups[$row['group']] = [];

   $groups[$row['group']][] = $row;

}

foreach($groups as $groupId => $users) {

    $out = "(".implode(", ", array_map(function($user) {

        return $user['name']."'s id is ".$user['id'];

    }, $users)).")";

    if(count($users) === 1)

        $out = $users[0]['name']." is group ".$groupId." ".$out.".";

    else {

        $lastUser = array_pop($users);

        $out = implode(", ", array_map(function($user) { return $user['name']; }, $users))." and ".$lastUser['name']." are group ".$groupId." ".$out.".";

    }

    echo $out."\n";

}


查看完整回答
反對 回復 2023-03-26
  • 1 回答
  • 0 關注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號