Php 创建一个没有重复元素的数组
我想创建一个没有重复元素的数组。起初我创建了一个空数组,但在PHP中这样做毫无意义。更好的方法 表1:Php 创建一个没有重复元素的数组,php,Php,我想创建一个没有重复元素的数组。起初我创建了一个空数组,但在PHP中这样做毫无意义。更好的方法 表1: Id Name 表2: Id Year PROJECT DURATION 1 2012 A 3 1 2012 B 2 获取数据: $sql = $mysqli->prepare(SELECT Name, Table1.Id, Year FROM Table1 JOIN Table2
Id Name
表2:
Id Year PROJECT DURATION
1 2012 A 3
1 2012 B 2
获取数据:
$sql = $mysqli->prepare(SELECT Name,
Table1.Id,
Year
FROM Table1 JOIN Table2
WHERE Table1.Id=Table2.Id
ORDER BY Id);
$sql->execute();
$result = $sql->get_result();
$Id[]=array();
while($row = $result->fetch_assoc()){
if (!in_array($row["Id"], $Id)){
$Id[]=$row["Id"];
...
}
}
我不使用DISTINCT,因为我以后需要所有年
、项目
和持续时间
条目。我可以更改数据库。如何修改和使用表2中的唯一Id?谢谢你的建议 试试这个PHP函数:
如果你想使用PHP,它听起来会做你想做的事情。否则,请按照@zerkms的建议在SQL中使用DISTINCT关键字。我想说它并不完全是重复的,因为OP可能不知道集合数据结构,这是一个在许多语言中都可用的概念,但在Stack Oveflow中还有另一个问题: 为了解释,集合数据结构是一种数据类型,它包含其他元素(如数组),但保证它们在集合中是唯一的,通常保证插入、删除和搜索的低复杂性(O(1)或O(logn),具体取决于实现) 从链接来看,PHP最接近集合(及其复杂性保证)的地方是使用数组的索引键来存储数据,而不是数组本身
但是如果您不担心复杂性(如果您的数据集太大或执行了太多的插入/删除/搜索,则不建议这样做),您可以只使用
array\u unique
,链接中也提到了这一点。从系统中选择不同的Id
数据必须有意义吗?你只是想从SQL查询中过滤重复的数据吗?修复你的数据库,怎么可能有重复的ID?是的,数据必须有意义。