【问题标题】:PHP get number from other numberPHP从其他号码获取号码
【发布时间】:2018-02-08 22:10:45
【问题描述】:

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

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

标签: php string substring str-replace


【解决方案1】:

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

更新一:申请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);

【讨论】:

  • @JYoThI,谢谢您的解决方案。但是当我尝试该代码时,它不起作用。我已经编辑了问题并使其更详细。谢谢,
  • @JYoThI,太好了。是工作。但是,如果有一个数据 MP/000090 并且我只想得到 90,是否有可能?
  • @JYoThI 太棒了!!但对不起,我想再问你一次,因为我刚刚发现该数据中有 MP/9998/002328。我怎样才能得到 2328 ?非常感谢你
【解决方案2】:

试试这个:

<?php

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

Live Demo

输出

12
120
89
12009
290989

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多