基于重复值从多维索引数组中删除数组

时间:2016-05-31 16:47:19

标签: php arrays

我有一个看起来像这样的PHP数组,

private

我需要它看起来像这样,

[["a","b"],["e","j"],["a","s"]]

或者,

[["a","b"],["e","j"]]

我不能有两个内部数组包含相同的" 0"指数。只要只剩下一个内部数组,删除哪个内部数组无关紧要。如何通过此数组并删除包含相同" 0"的内部数组?索引?

谢谢!

2 个答案:

答案 0 :(得分:0)

你可以通过两个循环简单地遍历数组。让我们说这是您的数据:

$data = array(
    array('a', 'b'),
    array('e', 'j'),
    array('a', 's'),
    array('a', 't'),
    array('c', 't'),
    array('a', 'h'),
    array('c', 'e'),
    array('f', 'g')
);

然后你继续循环浏览所有内容,如果它的值相同,则取消设置。

$count = count($data);
foreach($data as $index => $array){
    for($i=$index + 1; $i<$count; $i++)
        if(isset($array[0]) && isset($data[$i][0]) && $array[0] == $data[$i][0])
            unset($data[$i]);
}

循环之后var_dump的{​​{1}}将是:

$data

答案 1 :(得分:0)

<?php 
$array = [["a","b"],["e","j"],["a","s"]];
$values = array();


foreach ($array as $key => $arrayChild) {
    foreach ($arrayChild as $val) {
        if (in_array($val, $values)) {
            unset($array[$key]);
        }
        $values[] = $val;
    }
}
print_r($array);
?>

结果:

Array ( 
   [0] => Array ( [0] => a [1] => b ) 
   [1] => Array ( [0] => e [1] => j ) 
)