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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Упорядочение массива, Задача 
V
    Опции темы
supercelt
Дата 25.12.2005, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Привет Народ!
Нужна Help!
Задачка что бы попарить мозг.
Смысл такой, есть текстовый файл, следующего вида:
//----------------
User1 Group1
User3 Group3
User1 Group3
User2 Group2
User2 Group1
//----------------

Нужно сделать так, что бы на экране было вот что:

User1 - Group1, Group3
User2 - Group1, Group2
User3 - Group3

Я пытался это всё реализовать с помощью массива, ну вот мой код, только он не работает, подкажите пожалуйста как правильно.

Код

<?
$f=file("test.txt");
$count=count($f);

sort($f);

$d=5;

for($r=0; $r<$count; $r++)
{
$f2[$r]=explode(" ",$f[$r]);
//echo $f[$r]."<br>";
//if($f2[1]
//echo $f2[$r][1]."<br>";

    if(!isset($mass))
    {
     $mass=array(array($f2[0][0]=>$f2[0][1]));
    }
    else
    {
    //$mass[$r]=array($f2[$r][0]=>$f2[$r][1]);
    $ma=array(array($f2[$r][0]=>$f2[$r][1]));
    $array_main=array_merge($mass[0],$ma[0]);
    //echo "<br>".$array_main[0][$f2][$r]."<br>";
    
    }
    
    echo $key=$f2[$r][0];
    //$key2=$f2[$r][1];
    
    echo "<br>".$array_main['User1']."<br>";
}



echo"<br><hr><br>";
$inter=array_unique($array_main);
echo $inter['User3'];
//echo "<br>".$array_main['User4']."<br>";
?>

Добавлено @ 13:13
На PHP
PM   Вверх
Mal Hack
Дата 25.12.2005, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(supercelt @ 25.12.2005, 13:12)
Нужно сделать так, что бы на экране было вот что:

Вот "как" не понятно совершенно. Алгоритм поясните.
PM ICQ   Вверх
shader
Дата 25.12.2005, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Mal @ 25.12.2005, 13:23)
Вот "как" не понятно совершенно. Алгоритм поясните.

Я так понял, нужно определить в каких группах состоит каждый User?

PM MAIL WWW   Вверх
HalkaR
Дата 25.12.2005, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

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



Код

<?
$f=file("text.txt");
$count=count($f);
$result = array();
for($r=0; $r<$count; $r++)
{
    $data = explode(' ', $f[$r]);
    $result[$data[0]][] = $data[1];
}
foreach ($result as $users => $groups)
{
    sort($groups);
    echo "$users - ".join(", ", $groups)."<br>";
}
?>

PM MAIL   Вверх
supercelt
Дата 25.12.2005, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо за код, а что означают пустые скобки [] -?
PM   Вверх
-=Ustas=-
Дата 25.12.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(supercelt @ 25.12.2005, 16:08)
Спасибо за код, а что означают пустые скобки [] -?

Присвоение индекса элементу массива, т.е. автоматически создается индекс следующий после маскимального значения существующего.



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
supercelt
Дата 25.12.2005, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Понял, а вкакой части кода происходит то, что в User1 записывается сразу два Group1 Group2

Как из этого:
User1 Group1
User1 Group2

делают это

User1 Group1, Group2 - за счёт Join???
PM   Вверх
Dave
Дата 26.12.2005, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(supercelt @ 25.12.2005, 21:21)
User1 Group1, Group2 - за счёт Join???

а в мане посмотреть ф-ю join ?
PM MAIL   Вверх
supercelt
Дата 26.12.2005, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кстати, вроде это не за счет join а за счет
Код
$result[$data[0]][] = $data[1];
, а именно этой фишки -
Код
[$data[0]]
, если убрать это то две группы не будут кидаться сразу на одного юзера


PM   Вверх
HalkaR
Дата 27.12.2005, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

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



Цитата(supercelt @ 26.12.2005, 22:11)
$result[$data[0]][] = $data[1];
За счет создается массив массивов групп.

Цитата(supercelt @ 26.12.2005, 22:11)
[$data[0]]
Если убрать это, то все группы будут кидаться в общую кучу.

PM MAIL   Вверх
supercelt
Дата 27.12.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Понял, Спасибо всем, можно закрывать тему
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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