php - 不重复地循环和排序结果

标签 php mysql loops foreach

你能建议我什么是不重复转换结果的好方法吗?

$numbers = array ('1', '5', '10');
 foreach ($numbers as $number){
  $query[] = $this->db->query("SELECT name, country FROM name WHERE id= '" . (int)$number .'"")
 }

结果

 Array (
  Array (
   name = ivan
   country = en
  )
  Array(
   name = Peter
   country = en
  )
  Array (
   name = sisi's
   country = en
  )
 )

我怎样才能像这样对结果进行排序

  Array(
   country = en
   name = array (
     sisi's
     Peter
     Ivan
   )
 )

最佳答案

您需要修改您的查询。

$numbers = array ('1', '5', '10');

$sql = "SELECT DISTINCT country,
GROUP_CONCAT(name) AS name
FROM name 
WHERE id IN(".implode(',',$numbers).")
GROUP BY country";

$this->db->query($sql);

得到结果后,可以用explode函数将字符串名称转换成数组。

关于php - 不重复地循环和排序结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56512866/

相关文章:

php - 将每个人从东部标准时间上午 8 点到午夜的网站访问权限更改为从午夜到上午 8 点只有我的 IP

php - SQL INSERT 中的数字格式

r - 用于从每个文档中提取变量并将其放置在适当的列中的循环

javascript - 使用 for 循环压缩代码

javascript - JavaScript中for循环的使用

php - Zend 框架 $_REQUEST 等效项

php - 当通过 iframe 加载网站时,网站将识别哪个 IP 地址?

php - 如何将插入数组值存储为单独的记录

iphone - sqlite 与 mysql iPhone 有多相似

php - 在基于WEB的应用程序中使用PHP进行MY SQL数据库连接