2013-09-06 9 views
2

У меня есть целое число $client_version=1000 Мне нужно добавить точки между каждым числом в этом целочисленном размере, поэтому он выглядит как 1.0.0.0 и сохраняет его в новой переменной как строку.Добавление символа между номерами

Как я могу это сделать?

+0

Это очень характерно для пунктирных номера версии использовать двойную цифру, как '1.3.10.4', никогда не возражают когда вы попадаете на уровни исправлений и имеете версии типа «3.2.10-p370». Вероятно, вы не хотите хранить версию как целое. – meagar

+0

@ Khamees Smith Не чувствуйте себя обязанным немедленно спешить, чтобы выбрать ответ, давая редакторам больше времени на заботу о форматировании и общем качестве. –

ответ

1
  • PHP предлагает функцию array str_split (string $string [, int $split_length = 1 ]), чтобы преобразовать строку в символьной массив или блоков символов. В вашем случае применение str_split((string)1000, 1) или str_split((string)1000) приведет:

    Array 
    (
        [0] => 1 
        [1] => 0 
        [2] => 0 
        [3] => 0 
    ) 
    

    Код:

    implode('.',str_split((string)1000)) 
    

    Результат:1.0.0.0


  • Для более общего, но менее известного подхода, основанного на регулярном выражении, см. Это gist и это касательное связанное topic on SO.

    Код:

    preg_match_all('/(.{1})/', (string)1000, $matches); 
    echo implode('.', $matches[0]); 
    

    Результат:1.0.0.0

+1

был очень быстрым: D тоже –

3

достаточно просто:

$client_version = 1000; 
$dotted = join(".",str_split($client_version)); 

Обратите внимание, что это всегда будет разделить его так, что есть только один символ между точками. Если вы хотите что-то вроде 1.00.0, вам нужно будет изменить свой вопрос, чтобы больше узнать о том, что вы пытаетесь сделать и какие шаблоны вам нужны.

+0

был очень быстрым: D –

0

Используйте str_split, чтобы получить массив символов, а затем implode.

$client_version = 1000; 
$client_version_chars = str_split($client_version); 
$client_version_with_dots = implode('.', $client_version_chars); 
Смежные вопросы