Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Выбрка значений из массива без повторений... |

16.05.2007, 11:31
|
|
Участник форума
Регистрация: 08.09.2006
Сообщений: 194
Провел на форуме: 1627025
Репутация:
163
|
|
Выбрка значений из массива без повторений...
Собственно решил написать скрипт.... и возникли проблемы... подскажите что не так сделал....
Код:
<?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(); я знаю... хочу сделать без неё...
|
|
|

16.05.2007, 11:55
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме: 1777536
Репутация:
932
|
|
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);
?>
Вроде так.
|
|
|

16.05.2007, 12:04
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Сообщение от Ky3bMu4
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);
?>
Вроде так.
и че ты дал?
Во-первых не рабочий, во-вторых что изменил?
|
|
|

16.05.2007, 12:13
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
http://il.php.net/manual/ru/function.array-unique.php
|
|
|

16.05.2007, 12:18
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
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));
?>
Вывод:
Код:
Array ( [0] => 1 [1] => 2 [2] => 3 )
|
|
|

16.05.2007, 12:49
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
PHP код:
for ($i=0; $i<count($Massiv);$i++)
В случае, если $Massiv не изменяется во время работы цикла, нужно делать так:
PHP код:
$cnt = count($Massiv);
for ($i=0; $i<$cnt; $i++)
Таким способом мы нехило экономим время работы скрипта, т.к. в первом варианте пересчет количества элементов массива выполнялся при каждом проходе цикла, чем больше количество элементов, тем больше времени это занимает. А так мы считаем только один раз.
|
|
|

16.05.2007, 12:55
|
|
Участник форума
Регистрация: 08.09.2006
Сообщений: 194
Провел на форуме: 1627025
Репутация:
163
|
|
Isis
Спасибо. Хороший вариант... проверки на вхождения элемента в массив)
Helios
Спасибо за совет экономии времени выполнения.
|
|
|

16.05.2007, 19:48
|
|
Участник форума
Регистрация: 03.05.2006
Сообщений: 167
Провел на форуме: 125505
Репутация:
116
|
|
 Больше нечего написать? Зачем изобретать велосипед, который все равно не будет ездить быстрее? 
|
|
|

17.05.2007, 10:31
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
Когда пишешь вот такие вот "велосипеды", ты тренируешь свой мозг. При этом иногда посещают идеи, которые потом, при создании больших проектов могут пригодиться.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|