Первый вариант
$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 раз требовательней Так что покороче или пооптимизированнее?
Спустя 1 минута, 58 секунд (15.07.2010 - 14:57) KaFe написал(а):
Ice покороче и примерно такой же по скорости.
Спустя 25 минут, 54 секунды (15.07.2010 - 15:22) Ice написал(а):
$in=5689;
print number_format($in, 0, '', ' - ');
держи
Спустя 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 написал(а):
Оба кода не работаю
первый выдает
первый выдает
Цитата |
1-000-111-111 |
второй выдает
Цитата |
0 - 1000111111 |
при входных данных 1000111111, должно выдавать
Цитата |
1000111 - 111 |
Спустя 2 минуты, 41 секунда (15.07.2010 - 15:41) Семён написал(а):
Цитата (Ice @ 15.07.2010 - 16:22) |
держи |
Спустя 2 минуты, 8 секунд (15.07.2010 - 15:43) Ice написал(а):
@ Семен у меня есть время искать ответы только в мануале, так что код - мой
@ KaFe - не, я привел разделения кода на разряды. А если б мне надо было так делиь на тыщи и сотни, я б, наверное, сделал так, как ты.
@ KaFe - не, я привел разделения кода на разряды. А если б мне надо было так делиь на тыщи и сотни, я б, наверное, сделал так, как ты.
Спустя 12 минут, 46 секунд (15.07.2010 - 15:56) sergeiss написал(а):
Ну да... Что-то я там погорячился немного И даже не потестил код, выложил его на форум.
А вот этот - рабочий код
А вот этот - рабочий код
$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 написал(а):
Есть
А если серьёзно - если ты хочешь получить это одним оператором, то делай функцию.
$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) | ||
|
ну если смотреть с этой стороны, то и код:
echo "Hello World";
я тоже спионерил
Спустя 4 минуты, 8 секунд (15.07.2010 - 16:16) KaFe написал(а):
Цитата (sergeiss @ 15.07.2010 - 13:11) |
А если серьёзно - если ты хочешь получить это одним оператором, то делай функцию. |
А вдруг сейчас кто-нибудь все в одну строчку сварганить.
Спустя 48 секунд (15.07.2010 - 16:16) Ice написал(а):
@ silius та ему по делу сказать нечего, вот он ходит флудит
@ KaFe тебе не понравилось
@ KaFe тебе не понравилось
Спустя 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 твой код какое то извращение и притом еще не работаюшее
Спустя 8 минут, 19 секунд (15.07.2010 - 16:30) SlavaFr написал(а):
работающее извращение.
Спустя 9 минут, 32 секунды (15.07.2010 - 16:39) KaFe написал(а):
точно работающий, я циферок за миллиард просто поставил, но он все равно извращение, и еще мне нужны две переменные на выходе
Спустя 5 минут, 43 секунды (15.07.2010 - 16:45) SlavaFr написал(а):
Ты составь список, что тебе еще нужно, я если деда мороза увижу, то ему передам.
Спустя 6 минут, 6 секунд (15.07.2010 - 16:51) KaFe написал(а):
SlavaFr вообще с самого начала все написано, ТЗ - читай внимательно
Спустя 6 минут, 29 секунд (15.07.2010 - 16:58) SlavaFr написал(а):
a ума на две части разбить не хватило?
извени, что хотел помочь,
больше не буду.
извени, что хотел помочь,
больше не буду.