【问题标题】:Substr all value in ArraySubstr 数组中的所有值
【发布时间】:2020-07-03 16:37:45
【问题描述】:

我想对数组中的每个值创建 substr,但它失败了。当我尝试在我的数组中进行一些循环然后对我的值一一进行 substr 时,我只能使 substr 工作。 但这不是我想要的

我有一个数组:

Array ( [0] => 41136.07.6 [1] => 21511.01.1 )

预期输出:

Array ( [0] => 41136 [1] => 21511 )

到目前为止,我只是这样做:

$temp = $this->input->post('account');
for ($count=0; $count < count($temp); $count++) {
    $accounttemp=substr($temp[$count], 0, 5);

    # code...
}

是否有可能或者是否有任何函数可以使我的数组直接更改而无需进行循环?

谢谢。

【问题讨论】:

标签: php arrays substr


【解决方案1】:

您可以使用foreach 循环,将&amp; 添加到 value 参数以允许在循环中更改它。例如:

$temp = array('41136.07.6', '21511.01.1');

foreach ($temp as &$accountnum) {
    $accountnum = substr($accountnum, 0, 5);
    // do some other stuff
}
print_r($temp);

输出:

Array
(
    [0] => 41136
    [1] => 21511
)

Demo on 3v4l.org

【讨论】:

    【解决方案2】:

    你可以使用array_walk

    $arr = ['41136.07.6', '21511.01.1'];
    
    function substr05(&$item) {
       $item = substr($item, 0, 5);
    }
    
    array_walk($arr, "substr05");
    
    print_r($arr);
    # Array
    # (
    #    [0] => 41136
    #    [1] => 21511
    # )
    
    

    Online Verification

    【讨论】:

      【解决方案3】:

      你可以使用array_map()来实现你想要的。

      $array = ['41136.07.6', '21511.01.1'];
      
      $output = array_map(function($val) {
          return substr($val, 0, 5);
      }, $array);
      
      print_r($output);
      

      请参阅文档here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-04
        • 1970-01-01
        • 2020-11-23
        • 2015-08-18
        • 2014-08-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多