$custdata=array();
$custdata[] = array(
"firstname" => $row['firstname'] ."<br /> <br />",
"lastname" => $row['lastname'] ."<br /> <br />",
"email" => $row['email'] ."<br />",
"date" => $row['date'] ."<br />"
);
这是我的阵列。我的人员重复,所以我可以在阵列中看到同一个人1,2,3或5次如果我打印它。如何删除重复的值?但我需要在DATE完成。如果person存在于数组中,则只有最新的日期才会出现在数组中。
答案 0 :(得分:0)
看看array_unique
函数因为我不知道你的确切要求。这个链接将帮助你理解array_unique函数
How do I use array_unique on an array of arrays?
答案 1 :(得分:0)
如果我正确理解了您的问题,您需要做的只是使用唯一键覆盖现有人(例如:他的电子邮件)。这是一个例子:
<?php
$persons = array();
$persons["123@gmail.com"] = array(
"date" => "1/1/1970",
/** etc.. **/
);
$date = "2/1/1970";
// Override old person with new date
if (isset($person["123@gmail.com"])) {
if ($person["123@gmail.com"]["date"] < $date) {
$person["123@gmail.com"] = array(
"date" => $date,
/** etc.. **/
);
}
}
答案 2 :(得分:0)
您需要在$ custdata上为每个人设置一个数组键。
$custdata['person_1'] = array();
$custdata['person_2'] = array();
....
也许使用他们的电子邮件地址作为密钥。
您可以使用array_key_exists()来检查是否已添加某个人。 http://php.net/manual/en/function.array-key-exists.php
答案 3 :(得分:0)
使用日期作为数组的键
$custdata = array();
// a loop probably goes here
if (empty($custdata[$row['date']])) {
$custdata[$row['date']] = array(
"firstname" => $row['firstname'] ."<br /> <br />",
"lastname" => $row['lastname'] ."<br /> <br />",
"email" => $row['email'] ."<br />",
"date" => $row['date'] ."<br />"
);
}
最后,如果您不想保留日期键,请使用
$custdata = array_values($custdata);
此外,将<br>
附加到数组值可能不是一个好主意。
在显示数组时附加<br>
可能会更好。