Home  >  Q&A  >  body text

数组去重 - PHP多维数组删除问题

$arr数组,var_dump($arr)结果如下,只想要其中一个一个数组,怎么办?array_unique不对

array(2) {
  [0]=>
  string(12) "{"227":"18"}"
  [1]=>
  string(12) "{"228":"21"}"
}
array(2) {
  [0]=>
  string(12) "{"227":"18"}"
  [1]=>
  string(12) "{"228":"21"}"
}
怪我咯怪我咯2629 days ago599

reply all(4)I'll reply

  • 阿神

    阿神2017-04-11 10:41:12

    你var_dump 一個變量,出現兩個數組結構,你在開玩笑麼

    reply
    0
  • ringa_lee

    ringa_lee2017-04-11 10:41:12

    如果两个元素一样的话,取其中一个不就行了
    $arr = reset($arr);

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-11 10:41:12

    1.序列化2级数组(将数组转换成字符串),将2级数组转换成字符串元素
    2.使用array_unique去除重复的元素
    3.反序列化元素,还原为数组

    $arrs = [
        [
            '{"227":"18"}',
            '{"228":"21"}'
        ],
        [
            '{"227":"18"}',
            '{"228":"21"}'
        ],
    ];
    $serializeArrs = array_map('serialize',$arrs);
    
    $uniqueArrs = array_unique($serializeArrs);
    
    $unserializeArrs = array_map('unserialize',$uniqueArrs);
    
    var_dump($unserializeArrs);
    //array (size=1)
    //  0 => 
    //    array (size=2)
    //      0 => string '{"227":"18"}' (length=12)
    //      1 => string '{"228":"21"}' (length=12)

    reply
    0
  • PHPz

    PHPz2017-04-11 10:41:12

    unserialize(array_unique(array_map('serialize', $arr))[0])

    (逃。。。

    reply
    0
  • Cancelreply