PHP从其他号码获取号码

时间:2017-08-31 04:24:54

标签: php string substring str-replace

我从这段代码中获取数据。

foreach ($datas as $data){
    echo $data['product_number']."<br>";
}

然后它将显示如下数据:

MP/9998/00012
00089
12009
290989 

但我想改变我的数据

12
120
89
12009
290989

我编辑了这个问题。以前是我的问题:

我有这个数组

$data = ["00012", "00120", "00089", "12009", "290989"]. 

此数组至少包含5个字符。如何才能获得该数组数据

[12, 120, 89, 12009, 290989]

谢谢。

3 个答案:

答案 0 :(得分:6)

简单使用array_mapintval

$data= array('00012','00120','00089','12009','290989');
$new = array_map('intval',$data); //intval function applied to each element in the array 

print_r($new);

更新1:应用intval

foreach ($datas as $data){
    echo intval($data['product_number'])."<br>";
}

更新2:使用filter_var

$str = 'MP/000090';
$int = filter_var($str, FILTER_SANITIZE_NUMBER_INT);
echo intval($int);

答案 1 :(得分:0)

试试这个:

<?php

$data = array("00012", "00120", "00089", "12009", "290989" );
foreach( $data as $v )
{
     echo ltrim($v, "0") . "\n";
}

Live Demo

<强> 输出

12
120
89
12009
290989

答案 2 :(得分:0)

这将始终返回每个元素中的最后一串数字(省略任何前面的零):

代码:(Demo

$data=array('00012','00120','00089','12009','290989','MP/000090','MP/9998/0023028');
$data=array_map(function($v){return preg_match('~0*\K\d+$~',$v,$out)?$out:'fail';},$data);
var_export($data);

输出:

array (
  0 => 
  array (
    0 => '12',
  ),
  1 => 
  array (
    0 => '120',
  ),
  2 => 
  array (
    0 => '89',
  ),
  3 => 
  array (
    0 => '12009',
  ),
  4 => 
  array (
    0 => '290989',
  ),
  5 => 
  array (
    0 => '90',
  ),
  6 => 
  array (
    0 => '23028',
  ),
)