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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разбитие слов на столбцы по указаным данным. 
:(
    Опции темы
Another
Дата 29.9.2007, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Нужно написать скрипт, который будет генерировать определенный текст...
То есть...
Указываешь:
Слово 1 и число a
Слово 2 и число b
Слово 3 и число c
Слово 4 и число d
Слово 5 и число e
Слово 6 и число f
и т.д.
Надо чтоб все эти слова разбились на шесть столбцов и сумма кол-ва этих слов должна равнятся указаному числу(a,b,c,d...).
PM MAIL   Вверх
sw04
Дата 29.9.2007, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



explode тебе в помощь...
или более сложный вариант regxp


--------------------
<удалено администрацией>
PM   Вверх
Another
Дата 29.9.2007, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А как это осуществить?
PM MAIL   Вверх
comcon1
Дата 29.9.2007, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

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



Чот я не понял?
превед 5
пока 2
шячло 3
Должно получиться:
превед   пока     щячло
превед   пока     щячло
превед                щячло
превед
превед
Так??? тогда что-то типа того:
Код

$array0 = array(
 0 => array("word" => "превед", "num" => 5), 
 1 => array("word" => "пока", "num" => 2), 
 2 => array("word" => "щячло", "num" => 3) 
); 
for ($i = 1; $i < 30; $i++) {
 for($j=0; $j<count($array0); $j++) {
   echo ( ($array0[$j] <= $i) ? $array0[$j]["word"] : "            "  );
 }
}

Ну это на примитивном. 
А прочитать строки:
превед 5
пока 2
шячло 3
Это правильно - explode. надо писать, как??


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


Бывалый
*


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

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



Почти так...
Должно, например, "превед" "5" не в один массив замисываться а в случайный(каждое слово - случайно)
PM MAIL   Вверх
SelenIT
Дата 30.9.2007, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Как-то так?
Код

<?
$wordCounts = array('превед'=>5, 'пока'=>2, 'щячло'=>3);
$words = array();
foreach ($wordCounts as $word => $count) {
   $tmp_array = array_fill(count($words), $count, $word);
   $words += $tmp_array;
}
shuffle($words);
// это только для примера, разбить перемешанный массив для вывода в столбцы можно и иначе
$result = array_chunk($words, ceil(count($words)/6));
print_r($result);
?>


Это сообщение отредактировал(а) SelenIT - 30.9.2007, 17:19


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Another
Дата 30.9.2007, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

 это только для примера, разбить перемешанный массив для вывода в столбцы можно и иначе

Как?
PM MAIL   Вверх
SelenIT
Дата 30.9.2007, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Например, обычным циклом:
Код

/* строки 1-8 остаются неизменными из прошлого примера */
$result = array();
foreach($words as $num => $word) $result[$num%6][] = $word;
print_r($result);

Этот вариант даже в чем-то лучше - меньше риск пустого последнего столбца...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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