我有一个数据库,并且获取的数组看起来像这样(如果我自己创建数组)
<?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个项目,但如果有重复,我想跳过它,继续前进。这有什么简单的解决方案吗?
答案 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);