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

Поиск:

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


Бывалый
*


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

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



Привет!

Подскажите, пожалуйста, существуют ли штатные средства в языке, при помощи которых можно строку вида «571-576» преобразовать в массив, содержащий все числа из указанного интервала (571, 572, 573, 574, 575, 576)? Или же самостоятельно, ручками разбирать, анализировать? Скиллы в PHP пока слабые, поэтому и в ручном преобразовании не откажусь от помощи или совета.

Разрабатываю веб-приложение на Yii для корпоративных нужд. В нем в основном идет учёт некой продукции, по большей части однотипной, выпускаемой небольшими партиями. Обычно в пределах партии отличаются эти изделия только по серийному номеру. И вот, чтобы не вводить для каждого девайса одинаковые параметры (там много разных раскрывающихся списков и чекбоксов), хотелось бы сделать возможность задавать интервал серийных номеров. А потом уже в контроллере добавлять в базу сразу пачку записей.
--------------------
У вас менее 250 сообщений, ссылки отключены
PM   Вверх
MoLeX
Дата 17.6.2011, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



Код

$str = "571-576";
$array = explode("-", $str);
$min = (int)$array[0];
$max = (int)$array[1];
$my_array = array();
for( $i = $min; $i<=$max; $i++ )
  $my_array[] = $i;

var_dump($my_array);


не красивый, но рабочий способ


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Shogun
Дата 17.6.2011, 12:53 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


сёгун-сан
**


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

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



Код

$str = '571-576';
list($from, $to) = explode('-', $str);
$from = (int)$from;
$to = (int)$to;

$array = range($from, $to-$from, 1);


http://php.net/manual/en/function.range.php


--------------------
2b || !2b
PM MAIL ICQ Skype   Вверх
MoLeX
Дата 17.6.2011, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



мм, range. не знал о таком


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
JackyFox
Дата 21.6.2011, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всем спасибо! 
Shogun, воспользуюсь вашей реализацией.
--------------------
У вас менее 250 сообщений, ссылки отключены
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.0574 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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