如果先前的密钥已经被回显,如何不回显数组

时间:2013-11-17 22:12:45

标签: php arrays

这是我在我的阵列上print_r($myArray)(包装在前面)之后得到的。

Array
(
    [0] => 203.143.197.254
    [1] => not/available
)
Array
(
    [0] => 40.190.125.166
    [1] => articles/not/a/page
)
Array
(
    [0] => 25.174.7.82
    [1] => articles/not/a/page
)

在这种情况下,我将如何返回或回显前两个(没有正则表达式),因为我只想输出之前没有回显过[1]值的每个数组?

我的列表中有更多条目和$ myArray [1]有时相同,我想跳过同样的事情。

我已经尝试过array_unique但我无法让它工作,因为param 1应该是一个数组。

print_r(array_unique($myArray));

2 个答案:

答案 0 :(得分:0)

这很有效。没有完成复制粘贴工作,但希望你能理解逻辑

$echoed = array();
foreach($array as $arr) {
    if(!in_array($arr[1],$echoed)) {
        echo $arr[1];
        $echoed[] = $arr[1];
    }
}

答案 1 :(得分:0)

$echoedBefore = array();
print_r(array_filter($myArray, function($entry) {
    global $echoedBefore;
    $alreadyEchoed = in_array($entry[1], $echoedBefore);
    if (!$alreadyEchoed) {
        $echoedBefore[] = $entry[1];
    }
    return !$alreadyEchoed;
}));