将带有数字的字符串转换为纯整数

时间:2013-11-27 17:14:31

标签: php arrays type-conversion

我是一个PHP菜鸟。我无法弄清楚如何将字符串中的数字列表转换为纯整数。

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

" 70, 51, 53, "

转换后应该是这样的:

70, 51, 53

我想要的是输出:

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

非常感谢您的帮助!

5 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

结帐explode()功能:

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

一旦你将它们放在一个数组中,因为PHP是松散类型的,你可以将它们用作整数或字符串。尾随,可能会导致问题,因此您可能希望将其删除。

答案 2 :(得分:0)

$ a = " 70, 51, 53, ";
$integerArray = explode(',', trim($a , " ," ) ); 

trim()将清除字符串开头和结尾的所有逗号和空格, explode将用逗号分隔字符串以分隔数组中的字符串,并且当php处理与数字相同的数字字符串时,这将是正确的:

$integerArray[0] + 30 == 100

答案 3 :(得分:0)

首先:使用

删除所有空格

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

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

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

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

array_walk( $featureIDs , 'intval' );

答案 4 :(得分:0)

使用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"
}