【问题标题】:Convert a string with numbers to pure integers将带有数字的字符串转换为纯整数
【发布时间】:2013-11-27 17:14:31
【问题描述】:

我是 PHP 菜鸟。我不知道如何将字符串中的数字列表转换为纯整数。

这是我得到的确切(!)字符串:

" 70, 51, 53, "

这就是转换后的样子:

70, 51, 53

我想要的是输出:

<? $featureIDs = array(70, 51, 53) ?>

非常感谢您提前提供的帮助!

【问题讨论】:

  • 标题说你想要纯整数,而问题要求使用逗号分隔的字符串。哪个是错的?到目前为止,您编写了哪些 PHP 代码?
  • 我已经编辑了我原来的问题!感谢您的努力!

标签: php arrays type-conversion


【解决方案1】:

我不确定您的示例输入中的引号是否真的是字符串的一部分,但如果它们是以下内容将起作用(它会从输入)。

$string = '" 70, 51, 53, "';
$output = explode(',',preg_replace("/[^0-9,]/", "", $string));
foreach($output as $k => $v) {
    if (!$v) {
        unset($output[$k]);
    }
}
var_dump($output);

【讨论】:

  • "" 不是字符串的一部分!谢谢!
【解决方案2】:

查看explode() 函数:

$numbers = explode(',', '70, 51, 53');

一旦将它们放入数组中,由于 PHP 是松散类型的,您可以将它们用作整数或字符串。结尾的 , 可能会导致问题,因此您可能需要删除它。

【讨论】:

    【解决方案3】:
    $ a = " 70, 51, 53, ";
    $integerArray = explode(',', trim($a , " ," ) ); 
    

    trim() 将清除字符串开头和结尾的所有逗号和空格, explode 将用逗号分隔字符串以分隔数组中的字符串,并且由于 php 将数字字符串视为数字,这是正确的:

    $integerArray[0] + 30 == 100
    

    【讨论】:

      【解决方案4】:

      首先:使用删除所有空格

      $string = str_replace( ' ', '', $string );

      然后,将字符串拆分为每个元素:

      $featureIDs = explode( ',', $string );

      最后,将所有字符串转成整数:

      array_walk( $featureIDs , 'intval' );

      【讨论】:

      • 这输出 "Bool(True)": $pages = " 70, 51, 53," ?> $string = str_replace('', '', $pages ); ?> $numbers = explode(',', $string); ?> $featuredIDs = array_walk( $numbers, 'intval' ); ?>
      • 不,$featureIDs 包含整数,因为 array_walk 使用引用。更改了我的答案中的命名
      • 你不必将字符串转为整数,php已经将字符串解释为整数
      • 我知道,但他要求的是纯整数,而不是包含整数的字符串。在这种情况下,您可以忽略最后一行,也可以
      【解决方案5】:

      使用 preg_match_all(),获取所有“数字序列”。

      $input = " 70, 51, 53, ";
      
      $ids = array();
      if (preg_match_all('(\d+)', $input, $matches)) {
        $ids = $matches[0];
      }
      
      var_dump($ids);
      

      输出:

      array(3) {
        [0]=>
        string(2) "70"
        [1]=>
        string(2) "51"
        [2]=>
        string(2) "53"
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-28
        • 1970-01-01
        • 2011-04-17
        相关资源
        最近更新 更多