プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。質問させてください。
array_unique関数はPHP4.04以降は使用できないと
マニュアルに記述されていました。

ですがどうしても配列内の重複した値を
削除したいのですが、ロジックがうまく
思いつけません・・・
どなたかわかる方はいらっしゃいますか?


$test_array = array("america","japan","america","canada","japan");


("america","canada","japan")
しかもソートしたいです!!
宜しくお願い致しますm(_ _)m

A 回答 (3件)

#2です、書いてから気づいた。



> array_unique関数はPHP4.04以降は使用できないと

「以降」ですか?
私の環境(PHP 4.3.1)では、array_unique 使えました。
    • good
    • 0

こんにちは。


べつなやり方。
私的には、重複削除といえばハッシュ(連想配列)!
以下コードで、新しい連想配列つくって、
用途に応じて、普通の配列に書き戻すなり、
そのまま新しい配列使うなり、どーぞ。

foreach($test_array as $key){
 $new_array[$key]=$key;
}
    • good
    • 0

>しかもソートしたいです!!


逆にソートしたくないならば思いつきませんでした
ちょっとかっこ悪いソースですが

$test_array = array("america","japan","america","canada","japan","america");

//配列をソートする
sort($test_array);

$arr_tmp = null;
for($i=0;$test_array[$i];$i++){
   //一個前の要素と比較して違えは新しい配列に格納
   if($test_array[$i]<>$arr_tmp){
      $new_arr[] = $test_array[$i];
   }
   $arr_tmp = $test_array[$i]; //比較用
}
//配列を元に戻す
$test_array = $new_arr;

こんなのでどうでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!