基于多维数组的第一个值,使用PHP去除重复项

3

给定

[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]不同,但我认为它们是重复的,因为有两个匹配的第一个值。其他数据是无关紧要的,在比较中不应被考虑。


不,它们并不完全相同...注意[0][1]与[2][1]不同。这不是一个精确匹配,因此它不会被删除。我将更新问题以明确说明这一点。 - Jared Eitnier
只有 $newList = array_map("unserialize", array_unique(array_map("serialize", $newList))); 可以用于比较完全匹配,但在我的情况下无法使用。 - Jared Eitnier
你尝试过自己解决这个问题吗?看看其他的解决方案,尝试制定自己的方案并发布请求帮助 :) - Prash
1个回答

4
尝试一下,假设$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);

这似乎按照我的需求工作了...显然我对比较方法不是很了解,这样写是否足够简洁? - Jared Eitnier
哦,我会再给你一个+1的评价,因为你的注释写得很好。谢谢! - Jared Eitnier
如果每行有三列呢? - Francesco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接