$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次,如果我打印它。如何删除重复的值?但是我需要在日期之前完成。如果person存在于数组中,则只有最新的日期留在数组中。
使用日期作为数组的键
$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>
看一下array_unique
函数,因为我不知道你的确切需求。这个链接将帮助你理解array_unique函数如何在数组的数组上使用array_unique ?
如果我正确理解了你的问题,你需要做的就是简单地使用唯一密钥覆盖现有的人(例如:他的电子邮件)。下面是一个例子:
<?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.. **/
);
}
}
您需要为$custdata上的每个人设置一个数组键。
$custdata['person_1'] = array();
$custdata['person_2'] = array();
....
也许可以用他们的电子邮件地址作为键。
你可以使用array_key_exists()来检查一个人是否已经被添加。http://php.net/manual/en/function.array-key-exists.php