php - 如何去除多维数组中重复的键值数组

标签 php arrays sorting multidimensional-array

我有这个数组,如果它的值与其他数组相同,我想删除它

$appointments = array(
                      array('1','Monday', '5:30 PM'),
                      array('2','Friday', '6:00 PM'),
                      array('3','Monday', '5:30 PM'),
                      array('4','Tuesday', '4:15 PM'),
                      array('5','Wednesday', '8:30 PM'),
                      array('6','Thursday', '1:45 PM')
);

我想要这个结果星期一,时间显示两次所以我只需要显示一次我为此使用下面的代码所以请为此提供更好的解决方案

$one_dimension = array_map('serialize', $appointments);
$unique_one_dimension = array_unique($one_dimension);
$unique_multi_dimension = array_map('unserialize', $unique_one_dimension);

echo "<pre>";print_r($unique_multi_dimension);

最佳答案

PHP code demo

<?php

$appointments = array(
                      array('1','Monday', '5:30 PM'),
                      array('2','Friday', '6:00 PM'),
                      array('3','Monday', '5:30 PM'),
                      array('4','Tuesday', '4:15 PM'),
                      array('5','Wednesday', '8:30 PM'),
                      array('6','Thursday', '1:45 PM')
);
//Here we are finding column of week days.


$implodedColumns=  array_map(function($data){
    unset($data[0]);
    return implode(",", array_map('trim', $data));
}, $appointments);
$result=array_unique($implodedColumns); 

array_walk($result, function(&$value,$key){
    $value=  array_merge(array($key),  explode(",", $value));
});

print_r($result); 

输出:

Array
(
    [0] => Array
        (
            [0] => 0
            [1] => Monday
            [2] => 5:30 PM
        )

    [1] => Array
        (
            [0] => 1
            [1] => Friday
            [2] => 6:00 PM
        )

    [3] => Array
        (
            [0] => 3
            [1] => Tuesday
            [2] => 4:15 PM
        )

    [4] => Array
        (
            [0] => 4
            [1] => Wednesday
            [2] => 8:30 PM
        )

    [5] => Array
        (
            [0] => 5
            [1] => Thursday
            [2] => 1:45 PM
        )

)

关于php - 如何去除多维数组中重复的键值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43362286/

相关文章:

arrays - 使用循环查找特定数组

Python - 如何对字母和数值列表进行排序?

c++使用冒泡排序自定义排序 vector

php - 简单的缓存功能 - 每小时检索数据

php - 每个 Behat 上下文的不同环境 (Symfony 4.x)

PHP7.4 : preg_replace(): Compilation failed: unrecognised compile-time option bit(s) at offset 0

php - 将 PHP 数组转换为 javascript 的最佳方法

javascript - 获取数组中出现次数相同(最高)的所有元素

arrays - 是否可以创建一个 Excel 数组公式,其中每个元素 n 是另一个数组的前 n 个元素的总和?

c++ - 合并排序不能完全工作