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

标签 php arrays multidimensional-array

<分区>

我有一个多维数组,因为我有重复的记录,所以我需要对它进行唯一性排序,所以我需要 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
        )
)

有重复的time_start,它们都是一样的,还有levelinput_level,但它们不受影响,只有当有匹配的 time_start 它应该删除它并处理整个数组 (数组比你想象的要大,但我只是发布了一个数组的小例子)。应该删除欺骗并像这样返回:

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

我发现无效的问题:

最佳答案

$input = array( /* your data */ );
$temp  = array();
$keys  = array();

foreach ( $input as $key => $data ) {
    unset($data['id']);
    if ( !in_array($data, $temp) ) {
        $temp[]     = $data;
        $keys[$key] = true;
    }
}

$output = array_intersect_key($input, $keys);

$input = array( /* your data */ );
$temp  = $input;

foreach ( $temp as &$data ) {
    unset($data['id']);
}

$output = array_intersect_key($input, array_unique($temp));

关于php - 基于值唯一的多维数组(不是数组键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6057151/

相关文章:

Joomla Protostar 模板中的 PHP 代码有人可以解释一下这部分吗

c - 尝试递增数组时出现 "lvalue required"错误

c# - C# 新手,无法创建多维数组

javascript - 从 PHP 到 Javascript 的数组为空

PHP 邮件格式问题 - 为什么 CRLF 标题行结尾会破坏 Outlook 中的 HTML 电子邮件?

JAVA:Arraylist 覆盖以前的条目

arrays - 如果数组被展平,我如何知道多维数组中项目的索引是什么?

Java 2d 数组和桶排序

php - Yii2 中的 block 是什么

python - Numpy 用另一个数组的特定行和列替换一个数组的特定行和列