php唯一数组按键

时间:2014-08-06 12:08:21

标签: php arrays unique

$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存在于数组中,则只有最新的日期才会出现在数组中。

4 个答案:

答案 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>可能会更好。