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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разбивка числа на цифры 
:(
    Опции темы
SeTeM
Дата 3.6.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



помогите пожалуйста)
долго пытался сам разобраться, но так толком ничего и не получилось.

допустим у меня есть строка "57456845634"
мне надо ее разбить на отдельные цифры в массиве ( $i[0]=5 , $i[1]=7 , $i[2]=4 и так далее).
пытался сделать на подобие того, что было тут http://forum.vingrad.ru/topic-241544.html , но не смог.

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

заранее спасибо smile
PM MAIL   Вверх
enof
Дата 3.6.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



PM MAIL ICQ Skype   Вверх
azesmcar
Дата 3.6.2009, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



SeTeM, 
чего?

Цитата(SeTeM @  3.6.2009,  17:27 Найти цитируемый пост)
допустим у меня есть строка "57456845634"


Цитата(SeTeM @  3.6.2009,  17:27 Найти цитируемый пост)
мне надо ее разбить на отдельные цифры в массиве ( $i[0]=5 , $i[1]=7 , $i[2]=4 и так далее).

а счем эта строка от массива отличается?
Код

$string = "123456";
for ($i = 0; $i < strlen($string); $i++)
    echo $string[$i].', ';

или я чего-то недопонимаю?

Это сообщение отредактировал(а) azesmcar - 3.6.2009, 17:42
PM   Вверх
SeTeM
Дата 3.6.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я уже с ним пробовал разобраться, но не понял как.
в http://forum.vingrad.ru/topic-241544.html они с помощью split и сделали то, что им надо было.

спасибо, azesmcar, все оказалось так просто) а я что-то замудренное делал))

Это сообщение отредактировал(а) SeTeM - 3.6.2009, 17:43
PM MAIL   Вверх
enof
Дата 3.6.2009, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



azesmcar, со строкой, как с полноценным массивом работать не получится.

Добавлено через 58 секунд
К тому же элемент массива - один байт, а не символ, так что с юникодом траблы.

Это сообщение отредактировал(а) enof - 3.6.2009, 17:47
PM MAIL ICQ Skype   Вверх
SeTeM
Дата 3.6.2009, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



enof, а разве кодировка влияет на размер цифр?
PM MAIL   Вверх
enof
Дата 3.6.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цифр - нет, но я говорил в общем, а не про конкретный случай.
PM MAIL ICQ Skype   Вверх
azesmcar
Дата 3.6.2009, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(enof @  3.6.2009,  17:46 Найти цитируемый пост)
со строкой, как с полноценным массивом работать не получится.

Ну смотря что нужно. Тут по теме ничего не понятно smile
PM   Вверх
gta4kv
Дата 3.6.2009, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


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

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



Код

$string = 'abbcd';
$string{ 2 } = 'd';
echo $string;
// выводит: abdcd


Если я правильно понял афтара.
То есть если вам надо к буквам просто обращаться как к массиву, этого хватит.

Это сообщение отредактировал(а) gta4kv - 3.6.2009, 22:10
PM MAIL   Вверх
NLspieler
Дата 4.6.2009, 03:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Число нужно сначала превратить в строку, а потом обращатся к номерам цифр, как к массиву.

Код

$num = 9876543 ;
$num = (string )$num ;

echo $num[0] ; // выдаст 9
echo $num[3] ; // выдаст 6


Но это не массив, это строка. Поэтому использовать такую строку как массив нельзя. Например конструкция foreach невозможно.

Зато спокойно можно получить правильный массив при помощи простого цикла. Вопрос в том, стоит ли это делать?

Код

$num = 9876543 ;
$num = (string) $num ;

$strlen = strlen ($num) ; // Длинна строки
for ($n=0 ; $n < $strlen ; $n++)
{
    $array[$n] = $num[$n] ; //Перегоняем в настоящий массив
}

echo $array[1] ; // выдаст 8
echo $array[5] ; // выдаст 4


Это сообщение отредактировал(а) NLspieler - 4.6.2009, 03:25
PM MAIL   Вверх
enof
Дата 4.6.2009, 05:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



gta4kv, в 5.3 фигурные скобки убраны.
Цитата(NLspieler @  4.6.2009,  04:21 Найти цитируемый пост)
стоит ли это делать?

http://php.net/str_split
PM MAIL ICQ Skype   Вверх
gta4kv
Дата 4.6.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


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

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



Да, str_split лучший вариант.

Цитата

gta4kv, в 5.3 фигурные скобки убраны.

Спасибо, не знал.
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.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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