Собственно решил написать скрипт.... и возникли проблемы... подскажите что не так сделал.... Code: <?php $Massiv=array("1","2","3","1","2","3"); for ($i=0; $i<count($Massiv);$i++) { $temp[]=$Massiv[0]; for ($j=1;$j<count($Massiv);$j++ ) { if ($Massiv[$i] !== $Massiv[$j]) $copy[]=$Massiv[$j]; } $Massiv=$copy; unset($copy); } print_r($temp); ?> p.s функцию array_unique(); я знаю... хочу сделать без неё...
PHP: <?php $Massiv=array("1","2","3","1","2","3"); $temp[]=$Massiv[0]; for ($i=0; $i<count($Massiv);$i++) { for ($j=1;$j<count($Massiv);$j++ ) { if ($Massiv[$i] !== $Massiv[$j]) $copy[]=$Massiv[$j]; } $Massiv=$copy; unset($copy); } print_r($temp); ?> Вроде так.
PHP: function my_array_unique(&$old){ $new = array(); foreach($old as $key => $value){ if(!in_array($value, $new)) $new[$key] = $value; } return $new; }?> Пример: PHP: <?php function my_array_unique(&$old){ $new = array(); foreach($old as $key => $value){ if(!in_array($value, $new)) $new[$key] = $value; } return $new; } $temp = Array ("1","2","3","1","2","3"); print_r(my_array_unique($temp)); ?> Вывод: Code: Array ( [0] => 1 [1] => 2 [2] => 3 )
PHP: for ($i=0; $i<count($Massiv);$i++) В случае, если $Massiv не изменяется во время работы цикла, нужно делать так: PHP: $cnt = count($Massiv); for ($i=0; $i<$cnt; $i++) Таким способом мы нехило экономим время работы скрипта, т.к. в первом варианте пересчет количества элементов массива выполнялся при каждом проходе цикла, чем больше количество элементов, тем больше времени это занимает. А так мы считаем только один раз.
Isis Спасибо. Хороший вариант... проверки на вхождения элемента в массив) Helios Спасибо за совет экономии времени выполнения.
Когда пишешь вот такие вот "велосипеды", ты тренируешь свой мозг. При этом иногда посещают идеи, которые потом, при создании больших проектов могут пригодиться.