foreach中的foreach多维

时间:2018-07-10 10:49:18

标签: php loops foreach duplicates

我想知道在多维数组的foreach中使用foreach时如何避免元素重复?

我数组的第一级可以有几个项目(这里只有2个,但也许我可以有7个级别)。我对此很麻烦。然后,该ID将用作sql请求中的参数,但这是另一回事了。

这是我的数组:

Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [id] => 10
                        )
                    [1] => Array
                        (
                            [id] => 11
                        )
                    [2] => Array
                        (
                            [id] => 12
                        )
                )
            [1] => Array
                (
                    [0] => Array
                        (
                            [id] => 11
                        )
                    [1] => Array
                        (
                            [id] => 12
                        )
                )
        )

这是我的foreach循环:

foreach($dataListe as $listeDiff){
            foreach($listeDiff as $$item){
                // echo $item[0].'<br />';
                echo "<pre>".print_r($item, true)."</pre>";
            }
        }

结果:

        Array
(
    [id] => 10
)

Array
(
    [id] => 11
)

Array
(
    [id] => 12
)

Array
(
    [id] => 11
)

Array
(
    [id] => 12
)

想要的:

        Array
(
    [id] => 10
)

Array
(
    [id] => 11
)

Array
(
    [id] => 12
)

2 个答案:

答案 0 :(得分:0)

使用array_unique()

$result = [];
foreach($dataListe as $listeDiff){
   $result[] = $listeDiff;        
}
$result = array_unique($result);

答案 1 :(得分:0)

以下应该有效

$dataListe = array(
    array(array('id'=>10),array('id'=>20),array('id'=>20),array('id'=>10),array('id'=>20)),
    array(array('id'=>10),array('id'=>30),array('id'=>20),array('id'=>10),array('id'=>20))
    );

$result = array();
foreach($dataListe as $listeDiff){
    foreach($listeDiff as $item){
            if(!(in_array($item, $result))){
               $result[] = $item;
               echo "<pre>".print_r($item, true)."</pre>";
            }

    }   
}

样本投放

Array
(
[0] => Array
    (
        [id] => 10
    )

[1] => Array
    (
        [id] => 20
    )

[2] => Array
    (
        [id] => 30
    )

)