Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как проверить значения массива на уникальность?
 
 автор: tAleks   (28.08.2006 в 22:20)   письмо автору
 
 

Есть масив, его нужно проверить. И если есть два или более одинаковых значения, в этом массиве, их нужно сложить в другой массив, для выделения потом ошибок.

   
 
 автор: deman-b   (28.08.2006 в 23:06)   письмо автору
 
   для: tAleks   (28.08.2006 в 22:20)
 

подожди... если значения одинаковы.... зачем тебе складывать их в отдельны массив?
получитсо в этом отдельном массиве что все значения одинаковы...
не проЩе ли подсчитать... количество одинаковых значений?.. и потом их оформит в виде массива кде ключ, это повторяющеесе значение из первого массива, а значение количество повторений его в первом массиве... или наоборот(array_flip)

   
 
 автор: deman-b   (28.08.2006 в 23:15)   письмо автору
 
   для: tAleks   (28.08.2006 в 22:20)
 

может так пойдёт...
если тебе известно значение которое должно повторятса... то

<?php
$array
// это массив который проверяем
$error_array ""// это массив в который складываютса ключи с одинаковыми значениями
$error_array array_keys($array$value); // где $array это массив в котором ищем, а $value это значение которое повторяется
?>

   
 
 автор: kasmanaft   (28.08.2006 в 23:31)   письмо автору
 
   для: tAleks   (28.08.2006 в 22:20)
 

что значит "сложить" ? переместить копии, скопировать копии или переместить одно значение из всех копий?

<?php
$arr 
= array ('as','fa','as','asda','fa','fa');
$arr2 = array();
sort ($arr);
for (
$i 1$i count($arr); $i++)
{
    if (
$arr[$i] == $arr[$i-1])
    {
        
$arr2[] = $arr[$i];
        
//unset ($arr[$i]); //если нужно
    
}
}
echo 
"<pre>";
print_r ($arr2);
?>

   
 
 автор: tAleks   (28.08.2006 в 23:49)   письмо автору
 
   для: kasmanaft   (28.08.2006 в 23:31)
 

Поясняю задачу.

Есть 1 массив, который рисуется 4 раза в 4 раскрывающихся списка.
Юзер может выбирать 1, 2, 3 или все 4 значерния из этих списков, но не может выбирать 2 одинаковых.

После того как юзер нажмет на Submit, нужно проверить чего он навыбирал... и если он выбрал 2 или более раз одно и тоже, ему нужно об этом сказать, и заставить сделать перевыбор, выделить одинаковые значения в форме.

Надеюсь выразился понятно...

   
 
 автор: kasmanaft   (29.08.2006 в 00:44)   письмо автору
 
   для: tAleks   (28.08.2006 в 23:49)
 

вроде понятно :) ... тогда можно поступить примерно так
<?php
$arr 
= array ('второй''первый''второй''первый''четвертый');
$count count($arr);
for (
$i 0$i $count$i++)
   for (
$k $i+1$k $count$k++)
      if (
$arr[$i] == $arr[$k]) $arr2[$i] = $arr[$k];
if (
count($arr2) > 0)
   foreach (
$arr2 as $key => $val)
      echo 
"Повторяется элемент под номером ".($key+1)." ($val) <br>";
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования