相关疑难解决方法(0)

如何从PHP中的多维数组中删除重复值

如何从PHP中的多维数组中删除重复值?

示例数组:

Array
(
    [0] => Array
    (
        [0] => abc
        [1] => def
    )

    [1] => Array
    (
        [0] => ghi
        [1] => jkl
    )

    [2] => Array
    (
        [0] => mno
        [1] => pql
    )

    [3] => Array
    (
        [0] => abc
        [1] => def
    )

    [4] => Array
    (
        [0] => ghi
        [1] => jkl
    )

    [5] => Array
    (
        [0] => mno
        [1] => pql
    )

)
Run Code Online (Sandbox Code Playgroud)

php arrays duplicate-data

287
推荐指数
7
解决办法
23万
查看次数

过滤/删除在多维数组中多次找到列值的行

我需要从输入数组中删除特定列中出现重复值的行。

样本数组:

$array = [
    ['user_id' => 82, 'ac_type' => 1],
    ['user_id' => 80, 'ac_type' => 5],
    ['user_id' => 76, 'ac_type' => 1],
    ['user_id' => 82, 'ac_type' => 1],
    ['user_id' => 80, 'ac_type' => 5]
];
Run Code Online (Sandbox Code Playgroud)

我想进行过滤以user_id确保唯一性并实现此结果:

所以,我的输出将是这样的:

[
    ['user_id' => 82, 'ac_type' => 1],
    ['user_id' => 80, 'ac_type' => 5],
    ['user_id' => 76, 'ac_type' => 1]
]
Run Code Online (Sandbox Code Playgroud)

我已经找到了此页面,但没有一个答案适合我的情况:

$result = array_unique($array, SORT_REGULAR);
Run Code Online (Sandbox Code Playgroud)

$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
Run Code Online (Sandbox Code Playgroud)

$result = array();
foreach ($array as …
Run Code Online (Sandbox Code Playgroud)

php filtering unique duplicates multidimensional-array

5
推荐指数
1
解决办法
1070
查看次数

基于值(不是数组键)的多维数组唯一

我有一个多维数组,我需要按唯一性排序,因为我有重复的记录,所以我需要array_unique通过数组并删除值的重复项,例如

Array
(
    [0] => Array
        (
            [id] => 324
            [time_start] => 1301612580
            [level] => 0.002
            [input_level] => 0.002
        )

    [1] => Array
        (
            [id] => 325
            [time_start] => 1301612580
            [level] => 0.002
            [input_level] => 0.002
        )

    [2] => Array
        (
            [id] => 326
            [time_start] => 1301612580
            [level] => 0.002
            [input_level] => 0.002
        )
)
Run Code Online (Sandbox Code Playgroud)

有重复的time_start,他们都是一样的,也levelinput_level但他们没有受到影响,只是如果有匹配time_start它应该删除它,全阵列式处理(数组比你想象的大,但我只贴小数组的例子).应该删除欺骗并返回如下:

Array
(
    [0] => Array
        (
            [id] => 324
            [time_start] => 1301612580 …
Run Code Online (Sandbox Code Playgroud)

php arrays multidimensional-array

3
推荐指数
2
解决办法
2万
查看次数

array_unique只返回一条记录

在下面的代码中:

$sth = $dbh->query('SELECT DISTINCT title,courseId,location from training');  
$sth->setFetchMode(PDO::FETCH_ASSOC); 
$results = $sth->fetchAll();
$uu = array_unique($results);

echo "<pre>";
print_r($uu);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)

我只得到1个结果 print_r($uu);

如果我删除array_unique所有(30+)行返回.(不,并非所有这些都是重复的):)

我究竟做错了什么?

编辑var_dump()结果:

array(23) {
  [0]=>
  array(3) {
    ["title"]=>
    string(26) "String Here"
    ["courseId"]=>
    string(1) "8"
    ["location"]=>
    string(1) "1"
  }
  [1]=>
  array(3) {
    ["title"]=>
    string(26) "Another String Here"
    ["courseId"]=>
    string(1) "8"
    ["location"]=>
    string(1) "2"
  }
  [2]=>
  array(3) {
    ["title"]=>
    string(24) "Third String Here"
    ["courseId"]=>
    string(1) "5"
    ["location"]=>
    string(1) "2"
  }
Run Code Online (Sandbox Code Playgroud)

等等...

php array-unique

2
推荐指数
1
解决办法
1040
查看次数