【问题标题】:Adding Character between numbers在数字之间添加字符
【发布时间】:2013-09-06 20:56:50
【问题描述】:

我有一个整数 $client_version=1000 我确实需要在这个整数的每个数字之间添加点,所以它看起来像 1.0.0.0 并将它作为字符串保存在新变量中。

我该怎么做?

【问题讨论】:

  • 虚线版本号使用两位数是很常见的,例如1.3.10.4,当您进入补丁级别并拥有像3.2.10-p370 这样的版本时,请不要介意。您可能不想将版本存储为整数。
  • @Khamees Smith 不要急于选择答案,让编辑有更多时间处理格式和整体质量。

标签: php string


【解决方案1】:

很简单:

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

请注意,这将始终将其拆分,以便点之间只有一个字符。如果您想要1.00.0 之类的内容,则需要更改您的问题以详细说明您正在尝试做什么以及您需要什么模式。

【讨论】:

    【解决方案2】:
    • 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

    【讨论】:

      【解决方案3】:

      使用str_split 获取字符数组,然后使用implode 它们。

      $client_version = 1000;
      $client_version_chars = str_split($client_version);
      $client_version_with_dots = implode('.', $client_version_chars);
      

      【讨论】:

        猜你喜欢
        • 2020-06-03
        • 1970-01-01
        • 2012-06-24
        • 2012-06-23
        • 2021-12-26
        • 1970-01-01
        • 2012-12-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多