PHP:数组将逗号分隔的字符串转换为int

时间:2019-11-29 03:26:45

标签: php arrays

我只是试图将包含用逗号分隔的数字的数组解析为没有逗号的数字,但仍然是数组形式。但这没用。

我的代码:

$total = $this->input->post('total');
$arrTot = array_filter(array_slice($total, 20));
print_r($arrTot);

数组结果:

Array
(
   [0] => 10,000
   [1] => 100,000
   [2] => 200,000
)

我想要的输出是擦除所有数字中的逗号:

Array
(
    [0] => 10000
    [1] => 100000
    [2] => 200000
)

我已经尝试过类似的操作,但似乎与我想要的输出还不很接近:

$total = $this->input->post('total');
$arrTot = array_filter(array_slice($total, 20));
for ($i=0; $i < count($arrTot); $i++) { 
    $valTot=str_replace( ',', '', $arrTot[$i]);
    print_r($valTot);
}

有什么办法可以解决这个问题?

谢谢。

6 个答案:

答案 0 :(得分:2)

您可以使用array_walk处理数组中的每个值:

$arrTot = array('10,000', '100,000', '200,000');
array_walk($arrTot, function (&$v) {
    $v = str_replace(',', '', $v);
});
print_r($arrTot);

输出:

Array
(
    [0] => 10000
    [1] => 100000
    [2] => 200000
)

Demo on 3v4l.org

答案 1 :(得分:1)

您可以为当前变量分配新值。

$arrTot = array_filter(array_slice($total, 20));
for ($i=0; $i < count($arrTot); $i++) { 
    $arrTot[$i]=str_replace( ',', '', $arrTot[$i]);
}
print_r($arrTot);

答案 2 :(得分:0)

如果要获得所需的输出,则需要替换主数组中的元素而不使用逗号。

$total = $this->input->post('total');
$arrTot = array_filter(array_slice($total, 20));

foreach ($arrTot as $key => $aTot) {
    $arrTot[$key] = str_replace(',','',$arrTot[$i);
}
var_dump($arrTot);

答案 3 :(得分:0)

试试这个-

echo "<pre>";
$arr = array('10,000','100,000','200,000');
print_r($arr);
//result 
   Array
  (
      [0] => 10,000
      [1] => 100,000
      [2] => 200,000
  )
foreach ($arr as $key => $value) {
   $new[] = str_replace(',','',$value);
}
print_r($new);
Array
(
    [0] => 10000
    [1] => 100000
    [2] => 200000
)

答案 4 :(得分:0)

尝试一下,

$arr = ['10,000','100,000','200,000'];
foreach($arr as $key=>$val){
  $arr[$key] = (int)str_replace(',','',$val);
}

var_dump($arr);

答案 5 :(得分:0)

您只需使用str_replace即可获得所需的结果

$arrTot = array('10,000', '100,000', '200,000');

foreach($arrTot as $key => $value){
  $arrTot[$key] = str_replace(",","",$value);
}

print_r($arrTot);