Codeigniter如何不选择重复的id

时间:2012-02-15 13:17:00

标签: php database arrays codeigniter

我有一个数据库,并且获取的数组看起来像这样(如果我自己创建数组)

<?php

    $array[] = array('id' => 1, 'message' => 'test');
    $array[] = array('id' => 1, 'message' => 'test');
    $array[] = array('id' => 2, 'message' => 'test');
    $array[] = array('id' => 5, 'message' => 'test');
    $array[] = array('id' => 1, 'message' => 'test');
    $array[] = array('id' => 8, 'message' => 'test');
    $array[] = array('id' => 5, 'message' => 'test');
    $array[] = array('id' => 1, 'message' => 'test');

?>

正如你所看到的,有一些ID为1的数组,我想选择最后5个项目,但如果有重复,我想跳过它,继续前进。这有什么简单的解决方案吗?

3 个答案:

答案 0 :(得分:1)

您使用的是Active Record Class吗?

如果是这样,请在获得结果之前将此行添加到您的查询中:

$this->db->distinct();

对于当前和未来的参考,CI已经并且因其出色的文档而受到称赞! 总是值得一看: http://codeigniter.com/user_guide/database/active_record.html

如果您不使用Active Record Class,请执行以上建议:)。

答案 1 :(得分:0)

你应该使用这样的查询:

“SELECT DISTINCT id,message from your_table LIMIT 0,5”

答案 2 :(得分:0)

MySQL方法: 参考这篇文章@ w3schools:http://www.w3schools.com/sql/sql_distinct.asp

SELECT
  DISTINCT(table.id),
  table.message
FROM
 db.messages

如果您坚持使用MySQL的prefferred方法之外这样做,您可以使用PHPS array_unique()函数..

http://php.net/manual/en/function.array-unique.php

<?php 
  $result = array_unique($array);
  print_r($result);