Здравствуйте, уважаемые php-мастера, Тут у меня такая жесть... Есть массив, например: PHP: <?php array( [0] =>array( [0] => "thing1, thing2"), [1] => array ( [0] => "thing3" ), [2] => array( [0] =>"thing1, thing3, thing5,"), [3] => array( [0] => "thing2, thing4"), //и.т.д..... ); Мне нужно выдать список "thing1, thing2, thing3...итд" т.е. мне нужно сначало превратить это в большой массив, потом убрать повторения, отсортировать и имплоиднуть. На словах-то все просто, а код никак написать что-то не получается Я долго ломал голову, но так ничего и не написал, поэтому решил задать вопрос вам... Заранее благодарю =)
на словах у вас все уже рассказано, что именно не получается? foreach + explode array_unique sort implode
PHP: <?php foreach ($array as $v) { $array2=!empty($array2)?array_merge($array2,$v):$v; } sort(array_unique($array2)); echo implode(null,$array2);
Уже нашел выход. Это нужно было для выхода тэгов из БД. Функции дается результат mysql_query, а возвращается html текст с тегами. Только не смейтесь над именами переменных: PHP: <?php function tagwork($msqlbuf){ while($adin = mysql_fetch_row($msqlbuf)){ $dva[] = $adin; } foreach($dva as $tri){ $adin[] = str_replace(" ","",$tri[0]); } $dva = implode(",",$adin); $tri = explode(",",$dva); $tri = array_unique($tri); sort($tri); foreach($tri as $adin){ $return .= "<a href=\"tag.php?tag=".$adin."\">".$adin."</a>, "; } return $return; } ?> Всем спасибо за помощь =)
LokiFC Последний код делает что-то страшное... Вот вариант для первого вопроса: PHP: <?php $gg = array( "0" => array("0" => "thing1, thing2"), "1" => array ("0" => "thing3" ), "2" => array("0" =>"thing1, thing3, thing5,"), "3" => array("0" => "thing2, thing4") ); $array = Array(); while ($row = current($gg)) { $tmp = explode(",", $row[0]); for ($i = 0, $count = sizeof($tmp); $i < $count; $i++) { if (!in_array($tmp[$i], $array) and !empty($tmp[$i])) $array[] = trim($tmp[$i]); } next($gg); } sort($array); /* print_r($array): Array ( [0] => thing1 [1] => thing2 [2] => thing3 [3] => thing3 [4] => thing4 [5] => thing5 ) */ Но вообще, задача поставлена неправильно.