我从这段代码中获取数据。
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]
谢谢。
答案 0 :(得分:6)
简单使用array_map
和intval
$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";
}
<强> 输出 强>
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',
),
)