[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Возможно ли это сделать другим образом
KaFe
Код берет число и проверяет больше ли оно тысячи, если да то разделяет число на 2 значения, первое тысячи, второе сотни, я сделал так, может кто-нибудь посоветует покороче.
Первый вариант
$in=5689;
$len = strlen($in);
if ($len > 3)
{
$out1 = substr ($in,0,$len-3);
$out2 = substr ($in,-3);
}
else
{
$out1 = 0;
$out2 =$in;
}
echo $out1.' - '.$out2;

второй вариант
	
$out1=round($in/1000);
$out2=str_replace($out1,'',$in);





Спустя 2 минуты, 28 секунд (15.07.2010 - 14:55) Ice написал(а):
потом опячть скажешь, счто мой код в 200 раз требовательней tongue.gif Так что покороче или пооптимизированнее? smile.gif

Спустя 1 минута, 58 секунд (15.07.2010 - 14:57) KaFe написал(а):
Ice покороче и примерно такой же по скорости. laugh.gif

Спустя 25 минут, 54 секунды (15.07.2010 - 15:22) Ice написал(а):

$in=5689;
print number_format($in, 0, '', ' - ');

держи smile.gif

Спустя 5 минут, 11 секунд (15.07.2010 - 15:28) sergeiss написал(а):
Где-то примерно так:
$in=5689;
$out1=0;
$out2=$in;
$pow=ceil( log10($in) ); // определяем количество цифр
if( $pow == 3 )
{
$out1=(int)($in/pow(10,$pow));
$out2=($in - $out1);
}
echo $out1.' - '.$out2;

Спустя 10 минут, 59 секунд (15.07.2010 - 15:39) KaFe написал(а):
Оба кода не работаю dry.gif

первый выдает
Цитата
1-000-111-111

второй выдает
Цитата
0 - 1000111111

при входных данных 1000111111, должно выдавать
Цитата
1000111 - 111

Спустя 2 минуты, 41 секунда (15.07.2010 - 15:41) Семён написал(а):
Цитата (Ice @ 15.07.2010 - 16:22)

$in=5689;
print number_format($in, 0, '', ' - ');

держи smile.gif

Код к сожалению не ваш smile.gif
http://yiiframework.ru/forum/viewtopic.php?f=4&t=570

Спустя 2 минуты, 8 секунд (15.07.2010 - 15:43) Ice написал(а):
@ Семен у меня есть время искать ответы только в мануале, так что код - мой wink.gif

@ KaFe - не, я привел разделения кода на разряды. А если б мне надо было так делиь на тыщи и сотни, я б, наверное, сделал так, как ты.

Спустя 12 минут, 46 секунд (15.07.2010 - 15:56) sergeiss написал(а):
Ну да... Что-то я там погорячился немного smile.gif И даже не потестил код, выложил его на форум.

А вот этот - рабочий код
$in=56809833789;
$out1=0;
$out2=$in;
$pow=ceil( log10($in) ); // определяем количество цифр
if( $pow >= 3 )
{
$pow--;
$out1=(int)($in/pow(10,3));
$out2=($in - $out1*pow(10,3));
}
echo $out1.' - '.$out2;

Спустя 10 минут, 9 секунд (15.07.2010 - 16:06) KaFe написал(а):
sergeiss а есть способы по короче??

Спустя 4 минуты, 29 секунд (15.07.2010 - 16:11) sergeiss написал(а):
Есть wink.gif

$in=56809833789;
$out1=0; $out2=$in; $pow=ceil( log10($in) ); // определяем количество цифр
if( $pow >= 3 )
{
$pow--; $out1=(int)($in/pow(10,3)); $out2=($in - $out1*pow(10,3));
}
echo $out1.' - '.$out2;


А если серьёзно - если ты хочешь получить это одним оператором, то делай функцию.

Спустя 32 секунды (15.07.2010 - 16:11) silius написал(а):
Цитата (Семён @ 15.07.2010 - 12:41)
Цитата (Ice @ 15.07.2010 - 16:22)

$in=5689;
print number_format($in, 0, '', ' - ');

держи  smile.gif

Код к сожалению не ваш smile.gif
http://yiiframework.ru/forum/viewtopic.php?f=4&t=570

ну если смотреть с этой стороны, то и код:
echo "Hello World";

я тоже спионерил biggrin.gif

Спустя 4 минуты, 8 секунд (15.07.2010 - 16:16) KaFe написал(а):
Цитата (sergeiss @ 15.07.2010 - 13:11)

А если серьёзно - если ты хочешь получить это одним оператором, то делай функцию.

А вдруг сейчас кто-нибудь все в одну строчку сварганить.

Спустя 48 секунд (15.07.2010 - 16:16) Ice написал(а):
@ silius та ему по делу сказать нечего, вот он ходит флудит biggrin.gif

@ KaFe тебе не понравилось dry.gif smile.gif

Спустя 7 секунд (15.07.2010 - 16:16) SlavaFr написал(а):
echo ($in>=1000?(intval($in/1000)).' - ':'').str_pad($in%1000,3,'0',STR_PAD_LEFT);

Спустя 5 минут (15.07.2010 - 16:21) KaFe написал(а):
SlavaFr твой код какое то извращение и притом еще не работаюшее laugh.gif

Спустя 8 минут, 19 секунд (15.07.2010 - 16:30) SlavaFr написал(а):
работающее извращение.

Спустя 9 минут, 32 секунды (15.07.2010 - 16:39) KaFe написал(а):
точно работающий, я циферок за миллиард просто поставил, но он все равно извращение, и еще мне нужны две переменные на выходе

Спустя 5 минут, 43 секунды (15.07.2010 - 16:45) SlavaFr написал(а):
Ты составь список, что тебе еще нужно, я если деда мороза увижу, то ему передам. rolleyes.gif

Спустя 6 минут, 6 секунд (15.07.2010 - 16:51) KaFe написал(а):
SlavaFr вообще с самого начала все написано, ТЗ - читай внимательно
laugh.gif

Спустя 6 минут, 29 секунд (15.07.2010 - 16:58) SlavaFr написал(а):
a ума на две части разбить не хватило?
извени, что хотел помочь,
больше не буду.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.