2011-02-03 68 views
0

HI全部清除數組中的重複值?

有人可以請幫助我一直試圖暫停這一段時間現在撓我的腦袋。

我正在添加鏈接到一個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 hasnt爲我工作可有人請幫忙嗎?

回答

0

您可以使用關聯數組來檢查它是否已經輸出。

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

} 
+0

你的先生是個天才偉大的工作三江源;) – iSimpleDesign 2011-02-03 10:53:48

0

沒問題。試試這個:

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

它將刪除數組$ arr中的任何重複值。

0

嘗試改變

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

此您好感謝嘗試這個第一,但沒有工作或ouptut什麼 – iSimpleDesign 2011-02-03 10:53:25

0

也許你可以使用它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