PHP 从其他号码获取号码

PHP get number from other number

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

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]

谢谢。

简单使用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);

试试这个:

<?php

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

Live Demo

输出

12
120
89
12009
290989

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

代码:(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',
  ),
)