【问题标题】:Remove duplicate values from multi-dimentional array从多维数组中删除重复值
【发布时间】:2014-07-21 19:29:13
【问题描述】:

谁能解释一下如何将下面的输入数组更改为输出数组,

输入

Array
(
 [24] => Array
    (
        [0] => Moto E
        [1] => Moto G
    )

[23] => Array
    (
        [0] => Moto  G
    )

[22] => Array
    (
        [0] => Nokia
        [1] => Karbon
        [2] => onida
        [3] => micromax
        [4] => L'oreal
        [5] => 
    )

[21] => Array
    (
        [0] => brand1
        [1] => brand2
    )

[20] => Array
    (
        [0] => Nokia
        [1] => Apple
        [2] => Sony
        [3] => JVC
        [4] => Samsung
    )

)

输出

Array
(
[24] => Array
    (
        [0] => Moto E
        [1] => Moto G
    )

[22] => Array
    (
        [0] => Nokia
        [1] => Karbon
        [2] => onida
        [3] => micromax
        [4] => L'oreal
        [5] => 
    )

[21] => Array
    (
        [0] => brand1
        [1] => brand2
    )

[20] => Array
    (
        [0] => Apple
        [1] => Sony
        [2] => JVC
        [3] => Samsung
    )

)

从上面的输入数组中,如何去除重复的数组值,我的意思是'Moto G'和'Nokia'产品是重复的。所以请给出将输入格式更改为输出格式的解决方案。

【问题讨论】:

  • 在请别人为你写代码之前,你有没有实际尝试过?
  • 这不是一个“为你编写代码”的网站——当你尝试了一些事情但遇到困难时,它可以帮助你!
  • 我投了重复的票,但想表明:我知道你找不到那个解决方案。不要将重复视为惩罚:)
  • 它不是重复的。在这种情况下,内部数组包含不同的值,因此这些解决方案不适用于此。

标签: php arrays multidimensional-array


【解决方案1】:

试试这个

$new_array = array();
$temp_array = array();
for($your_array as $key=>$arr_val)
{
    $arr = array();
    foreach($arr_val as $val)
    {
        if(!in_array($val, $temp_array))
        {
            $arr[] = $val;
            $temp_array[] = $val;
        }
    }

    if(sizeof($arr)>0)
    {
        $new_array[$key] = $arr;
    }
}

Working Demo

【讨论】:

  • 感谢您的代码。它将帮助我在我的应用程序中为特定品牌指定供应商
猜你喜欢
  • 1970-01-01
  • 2011-04-05
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
  • 2018-07-26
相关资源
最近更新 更多