Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Операции над массивом 
V
    Опции темы
DrNemo
Дата 21.7.2006, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 7.12.2005
Где: Не пейте ракетное топливо! :-)

Репутация: 1
Всего: 1



Есть массив чисел

Например:
Код

1
3
5
7
7
5
4
1
4


мне надо узнать сколько там не повторяющихся чисел
Т.е. здесь их 5 (1,3,5,7,4)

как это реализовать? 
--------------------
На свете есть только две вещи которые сносят башню - космос и женщины (К.Ю.Бунин)Самый мастдаевский сакс в том, что рулезные фичи глючат :))
PM MAIL WWW ICQ   Вверх
Muchenik
Дата 21.7.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 27.10.2005

Репутация: 5
Всего: 5



Попробуй так:
Код

count(array_unique ($arr));
 
PM MAIL ICQ   Вверх
vasac
Дата 21.7.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Код

sizeof( array_unique( $A ) );
 


---
Апаздал.... 

Это сообщение отредактировал(а) vasac - 21.7.2006, 16:30
PM WWW   Вверх
DrNemo
Дата 22.7.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 7.12.2005
Где: Не пейте ракетное топливо! :-)

Репутация: 1
Всего: 1



спасибо, проблему решил, но возникла другая: 
как узнать эти значения и сколько раз они повторялись.
т.е. :
Код

1 повторяется 2 раза
3 - 1 раз
5 - 2
7 - 2
4 - 2

Зарание спасибо. 
--------------------
На свете есть только две вещи которые сносят башню - космос и женщины (К.Ю.Бунин)Самый мастдаевский сакс в том, что рулезные фичи глючат :))
PM MAIL WWW ICQ   Вверх
skyboy
Дата 22.7.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



DrNemo, у тебя они из базы берутся? 
PM MAIL   Вверх
DrNemo
Дата 22.7.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 7.12.2005
Где: Не пейте ракетное топливо! :-)

Репутация: 1
Всего: 1



нет из файла 
--------------------
На свете есть только две вещи которые сносят башню - космос и женщины (К.Ю.Бунин)Самый мастдаевский сакс в том, что рулезные фичи глючат :))
PM MAIL WWW ICQ   Вверх
UzerPHp
Дата 22.7.2006, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Вот есть мой вариант решения, возможно не самый правильный и длинный но я учусь))
Код

<?php
function Cheat($mass)
{
    $copyMass=$mass; // делаю копию массива
    $c=0;    
  for ($i=0; $i<count($mass); $i++)
  // пробег массива по всем элементам  элемент I у нас остаётся неизменным
    {
        for ($j=0; $j<count($mass); $j++) 
        // пробег массива опять же но по следующим элементам
            {
              if (strcasecmp($mass[$i],$copyMass[$j]) == 0)// сравниваю символы на равенство
                {
                    $c++;// увеличнию счётчик в случае совпадения
                    $copyMass[$j]="lol";// в копию массива заношу левое значение что бы не было повторений                
                }    
            }    
    if (!$c==0) echo ("Symbol <b>[$mass[$i]]</b> ---- $c <br>");
        // вывожу элементы и сколько раз повторилися
    $c=0;
    }    
}

    if ($myfile=file("c:\\test.txt")) // чтение файла сразу в массив
        { 
            Cheat($myfile);
        }
 else
 { 
        echo ("Newozmogno Otkrit fail!!");
 } 
?>


Код будет работать если данные в файле 
Код

1
3
5
7
7
5
4
1
4
 

так как функция file() читает построчно ) 
PM MAIL   Вверх
mr.Anderson
Дата 22.7.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Если структура файла действительно такая, то можно покороче:
Код

<?php

 $f = file( "your_file.txt" );
 $fcpy = array();
 
 for( $i=0; $i < count( $f ); $i++)
 {
  $num = $f[ $i ];
  $fcpy[ $num ] = 1;

  for( $j=0; $j < count( $fcpy ); $j++ )
   if( $f[ $j ] === $num )
    ++$fcpy[ $num ];
 }

 sort( $fcpy );
 
 //Выводим массив
 foreach( $fcpy as $k=>$v )
  echo "$k повторялось $v раз.<br>";

?>
     

Это сообщение отредактировал(а) sim7 - 23.7.2006, 10:57


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Muchenik
Дата 24.7.2006, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 27.10.2005

Репутация: 5
Всего: 5



Я бы так сделал:
Код

$arr = array (1,1,2,3,2,4,6,7,6,5,5,5,5);

foreach($arr as $var) $elemcount["$var"]++; // подсчет количества одинаковых элементов
foreach($elemcount as $key=>$val){ print $key."  -  ".$val."<br>"; } // вывод результата

Всего 2 цикла, один из которых вывод результата. smile    smile  

Это сообщение отредактировал(а) Muchenik - 24.7.2006, 16:38
PM MAIL ICQ   Вверх
mr.Anderson
Дата 24.7.2006, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 1
Всего: 128



Muchenik, браво. smile  


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
smartov
Дата 25.7.2006, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Muchenik, молодца. Но для подавления ворнингов я б поставил "... @$elemcount["$var"]...;" 
PM MAIL   Вверх
DrNemo
Дата 25.7.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 7.12.2005
Где: Не пейте ракетное топливо! :-)

Репутация: 1
Всего: 1



Большое спасибо Всем! 
--------------------
На свете есть только две вещи которые сносят башню - космос и женщины (К.Ю.Бунин)Самый мастдаевский сакс в том, что рулезные фичи глючат :))
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0837 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.