【问题标题】:Clear Duplicate values out off array?清除数组中的重复值?
【发布时间】:2011-02-03 10:17:50
【问题描述】:

大家好

有人能帮我解决这个问题有一段时间了,现在挠头了。

我正在添加指向 SESSION 数组的链接,这是我的代码。

    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); 的结果

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
                )

        )

)

所以我要做的是遍历该数组并显示链接,但我没有任何重复值。

$turn = $_SESSION['value'];

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

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

echo $furl;

}

这是我从 foreach 得到的结果。

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/

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

 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 对我没有用,有人可以帮忙吗?

【问题讨论】:

    标签: php arrays unique


    【解决方案1】:

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

    $outputted = array();
    

    使用$furl 作为键。

    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;
    
    }
    

    【讨论】:

      【解决方案2】:

      没问题。试试这个:

      function filter($val)
      {
          static $base=array();
          if(in_array($val,$base))return false;
          $base[]=$val;
          return true;
      }
      array_filter($arr,"filter");
      

      它将从数组 $arr 中删除所有重复值。

      【讨论】:

        【解决方案3】:

        尝试改变

        array_reverse($turn)
        

        array_unique(array_reverse($turn))
        

        原来是这样的

        foreach (array_unique(array_reverse($turn)) as $value) { 
            $furl = "http://example.s3.amazonaws.com/".urlencode($value['tune_name']);
            echo $furl;
        }
        

        【讨论】:

        • 您好,感谢您先尝试了这个,但没有工作或输出任何东西
        【解决方案4】:

        也许您可以使用 array_unique 它过滤掉所有 duplicated 值,例如:

        $turn = $_SESSION['value'];
        
        foreach (array_unique(array_reverse($turn)) as $value) { 
        
        $furl = "http://example.s3.amazonaws.com/".urlencode($value['tune_name']);
        
        echo $furl;
        
        }
        

        结果应该是:

        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
        

        【讨论】:

          猜你喜欢
          • 2017-10-04
          • 2015-12-01
          • 2012-09-28
          • 1970-01-01
          • 1970-01-01
          • 2021-08-26
          • 1970-01-01
          • 2019-10-19
          • 1970-01-01
          相关资源
          最近更新 更多