<?php
function get_video() {
$stripper = "Content...[video=1], content...content...[video=2],
content...content...content...[video=1], no more...";
preg_match_all("/\[video=(.+?)\]/smi", $stripper, $search);
$unique = array_unique($search[0]);
$total = count($unique);
for($i=0; $i < $total; $i++)
{
$vid = $search[1][$i];
if ($vid > 0)
{
$random_numbers = rand(1, 1000);
$video_id = $vid."_".$random_numbers;
$stripper = str_replace($search[0][$i], $video_id, $stripper);
}
}
return $stripper;
}
echo get_video();
?>
$stripper で重複した [video=1] を削除したいのですが、必要な結果は次のとおりです。
Content...1_195, content...content...2_963,
content...content...content..., no more...
重複した配列を削除するために array_unique() 関数を使用しています。上記のコードから、print_r($unique) の場合、重複する配列が削除されました。
Array ( [0] => [video=1] [1] => [video=2] )
しかし、get_video() をエコーすると、重複した [video=1] がまだ存在します。
Content...1_195, content...content...2_963,
content...content...content...1_195([video=1]), no more...
理由がわかりません!!!:(