我是一个PHP菜鸟。我无法弄清楚如何将字符串中的数字列表转换为纯整数。
这是我得到的确切(!)字符串:
" 70, 51, 53, "
转换后应该是这样的:
70, 51, 53
我想要的是输出:
<? $featureIDs = array(70, 51, 53) ?>
非常感谢您的帮助!
答案 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"
}