php удалить дубликаты на основе первого значения многомерного массива

Данный

[0] => Array
    (
        [0] => ask.com
        [1] => 2320476
    )

[1] => Array
    (
        [0] => amazon.com
        [1] => 1834593
    )

[2] => Array
    (
        [0] => ask.com
        [1] => 1127456
    )

Мне нужно удалить повторяющиеся значения исключительно на основе первого значения, независимо от того, какими могут быть любые другие последующие значения. Обратите внимание, что [0][1] отличается от [2][1], но я считаю это дубликатом, потому что есть два совпадающих первых значения. Остальные данные не имеют значения и не должны рассматриваться в сравнении.


person Jared Eitnier    schedule 17.12.2012    source источник
comment
Нет, это не совсем то же самое... примечание [0][1] отличается от [2][1]. Это не точное совпадение, поэтому оно не будет удалено. Я обновлю вопрос, чтобы уточнить это.   -  person Jared Eitnier    schedule 18.12.2012
comment
Только $newList = array_map("unserialize", array_unique(array_map("serialize", $newList))); однако это только для сравнения точных совпадений. В моем случае это не работает.   -  person Jared Eitnier    schedule 18.12.2012
comment
Вы пытались решить это самостоятельно? Посмотрите на другие решения; попробуй слепить сам и опубликовать с просьбой о помощи :)   -  person Prash    schedule 18.12.2012


Ответы (1)


Попробуйте это, предполагая, что $mainArray - это массив, который у вас есть.

$outputArray = array(); // The results will be loaded into this array.
$keysArray = array(); // The list of keys will be added here.
foreach ($mainArray as $innerArray) { // Iterate through your array.
    if (!in_array($innerArray[0], $keysArray)) { // Check to see if this is a key that's already been used before.
        $keysArray[] = $innerArray[0]; // If the key hasn't been used before, add it into the list of keys.
        $outputArray[] = $innerArray; // Add the inner array into the output.
    }
}
print_r($outputArray);
person Stegrex    schedule 17.12.2012
comment
Кажется, это работает так, как мне нужно ... очевидно, не зная тонны методов сравнения, так ли это чисто, как получается? - person Jared Eitnier; 18.12.2012
comment
О, и я бы дал еще +1 за комментарий :) Спасибо! - person Jared Eitnier; 18.12.2012
comment
Спасибо за ответ. Работает как чудо для меня. - person V15HM4Y; 01.08.2013
comment
а если у вас есть три столбца для каждой строки? - person Francesco; 07.10.2017