首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否清除数组中的重复值?

是否清除数组中的重复值?
EN

Stack Overflow用户
提问于 2011-02-03 18:17:51
回答 4查看 223关注 0票数 0

大家好

有没有人能帮帮我,我已经想了好一阵子了,我都抓头了。

我正在向一个会话数组添加链接,下面是我的代码。

代码语言:javascript
复制
    session_start();
$test = $_GET;
$_SESSION['value'][]=$test;
echo "<pre>";
//print_r($_SESSION);
echo "</pre>";


$turn = $_SESSION['value'];

foreach (array_reverse($turn) as $value) { 

$furl = "http://example.s3.amazonaws.com/".urlencode($value['tune_name']);

echo $furl;

}

这是我的print_r($_SESSION)的结果;

代码语言:javascript
复制
Array
(
    [attach] => Array
        (
        )

    [backups-2] => true
    [dnb] => true
    [house] => true
    [tech-house] => true
    [uk-garage] => true
    [uk-grime] => true
    [uk-hip-hop] => true
    [uncategorized] => true
    [warehouse] => true
    [active] => 
    [value] => Array
        (
            [0] => Array
                (
                    [tune_name] => Music/dnb/03 Twerk feat. Yo Majesty (Sub Focus Remix).mp3
                    [tune] => http://example.s3.amazonaws.com/Music/dnb/03 Twerk feat. Yo Majesty (Sub Focus Remix).mp3
                    [submit] => Listen
                )

            [1] => Array
                (
                )

            [2] => Array
                (
                    [tune_name] => Music/dnb/Abort_Delta Heavy_192.mp3
                    [tune] => http://example.s3.amazonaws.com/Music/dnb/Abort_Delta Heavy_192.mp3
                    [submit] => Listen
                )

            [3] => Array
                (
                    [tune_name] => Music/dnb/03 Twerk feat. Yo Majesty (Sub Focus Remix).mp3
                    [tune] => http://example.s3.amazonaws.com/Music/dnb/03 Twerk feat. Yo Majesty (Sub Focus Remix).mp3
                    [submit] => Listen
                )

            [4] => Array
                (
                    [tune_name] => Music/dnb/21st Century (Feat. Cabbie)_Tantrum Desire_192.mp3
                    [tune] => http://example.s3.amazonaws.com/Music/dnb/21st Century (Feat. Cabbie)_Tantrum Desire_192.mp3
                    [submit] => Listen
                )

            [5] => Array
                (
                    [tune_name] => Music/dnb/Abort_Delta Heavy_192.mp3
                    [tune] => http://example.s3.amazonaws.com/Music/dnb/Abort_Delta Heavy_192.mp3
                    [submit] => Listen
                )

            [6] => Array
                (
                )

            [7] => Array
                (
                    [tune_name] => Music/dnb/03 Twerk feat. Yo Majesty (Sub Focus Remix).mp3
                    [tune] => http://example.s3.amazonaws.com/Music/dnb/03 Twerk feat. Yo Majesty (Sub Focus Remix).mp3
                    [submit] => Listen
                )

            [8] => Array
                (
                    [tune_name] => Music/dnb/Abort_Delta Heavy_192.mp3
                    [tune] => http://example.s3.amazonaws.com/Music/dnb/Abort_Delta Heavy_192.mp3
                    [submit] => Listen
                )

        )

)

所以我要做的就是遍历这个数组并显示链接,但是我不知道有没有重复的值。

代码语言:javascript
复制
$turn = $_SESSION['value'];

foreach (array_reverse($turn) as $value) { 

$furl = "http://example.s3.amazonaws.com/".urlencode($value['tune_name']);

echo $furl;

}

这是我从foreach得到的结果。

代码语言:javascript
复制
http://example.s3.amazonaws.com/Music%2Fdnb%2FAbort_Delta+Heavy_192.mp3
http://example.s3.amazonaws.com/Music%2Fdnb%2FAbort_Delta+Heavy_192.mp3
http://example.s3.amazonaws.com/Music%2Fdnb%2F03+Twerk+feat.+Yo+Majesty+%28Sub+Focus+Remix%29.mp3
http://example.s3.amazonaws.com/
http://example.s3.amazonaws.com/Music%2Fdnb%2FAbort_Delta+Heavy_192.mp3
http://example.s3.amazonaws.com/Music%2Fdnb%2F21st+Century+%28Feat.+Cabbie%29_Tantrum+Desire_192.mp3
http://example.s3.amazonaws.com/Music%2Fdnb%2F03+Twerk+feat.+Yo+Majesty+%28Sub+Focus+Remix%29.mp3
http://example.s3.amazonaws.com/Music%2Fdnb%2FAbort_Delta+Heavy_192.mp3
http://example.s3.amazonaws.com/

太烦人了,我只想让它显示出来。

代码语言:javascript
复制
 http://example.s3.amazonaws.com/Music%2Fdnb%2FAbort_Delta+Heavy_192.mp3
http://example.s3.amazonaws.com/Music%2Fdnb%2F03+Twerk+feat.+Yo+Majesty+%28Sub+Focus+Remix%29.mp3
http://example.s3.amazonaws.com/Music%2Fdnb%2F21st+Century+%28Feat.+Cabbie%29_Tantrum+Desire_192.mp3

因为上面没有任何重复的值,我已经尝试了这么多,array_unique对我不起作用,有人能帮帮我吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-03 18:21:45

您可以使用关联数组来检查它是否已经输出。

代码语言:javascript
复制
$outputted = array();

使用$furl作为密钥。

代码语言:javascript
复制
foreach (array_reverse($turn) as $value) { 

    $furl = "http://example.s3.amazonaws.com/".urlencode($value['tune_name']);

    if (isset($outputted[$furl])) {
        continue;
    }

    echo $furl;

    $outputted[$furl] = true;

}
票数 0
EN

Stack Overflow用户

发布于 2011-02-03 18:21:55

没问题。试试这个:

代码语言:javascript
复制
function filter($val)
{
    static $base=array();
    if(in_array($val,$base))return false;
    $base[]=$val;
    return true;
}
array_filter($arr,"filter");

它将从数组$arr中删除任何重复的值。

票数 0
EN

Stack Overflow用户

发布于 2011-02-03 18:22:48

试着改变

代码语言:javascript
复制
array_reverse($turn)

代码语言:javascript
复制
array_unique(array_reverse($turn))

所以它看起来是这样的

代码语言:javascript
复制
foreach (array_unique(array_reverse($turn)) as $value) { 
    $furl = "http://example.s3.amazonaws.com/".urlencode($value['tune_name']);
    echo $furl;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4884846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档