代码之家  ›  专栏  ›  技术社区  ›  adn

PHP从其他数字中获取数字

  •  2
  • adn  · 技术社区  · 7 年前

    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"]. 
    

    [12, 120, 89, 12009, 290989]
    

    3 回复  |  直到 7 年前
        1
  •  6
  •   JYoThI    7 年前

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

    申请

    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);
    
        2
  •  0
  •   Prince Adeyemi    7 年前

    试试这个:

    <?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
  •  0
  •   mickmackusa    7 年前

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