PHP数组对象使用数组映射或数组遍历强制转换整数

PHP数组对象使用数组映射或数组遍历强制转换整数,php,arrays,Php,Arrays,我正试图编写一个小函数,在多维数组中以整数形式转换状态和总值,我想我需要使用数组映射或数组漫游: array ( 0 => array ( 'status' => '0', 'total' => '6', ), 1 => array ( 'status' => '1', 'total' => '37', ), 2 => array ( 'status' => '2',

我正试图编写一个小函数,在多维数组中以整数形式转换状态和总值,我想我需要使用数组映射或数组漫游:

array (
  0 => 
  array (
    'status' => '0',
    'total' => '6',
  ),
  1 => 
  array (
    'status' => '1',
    'total' => '37',
  ),
  2 => 
  array (
    'status' => '2',
    'total' => '8',
  ),
)
为了得到这个结果

array (
  0 => 
  array (
    'status' => 0,
    'total' => 6,
  ),
  1 => 
  array (
    'status' => 1,
    'total' => 37,
  ),
  2 => 
  array (
    'status' => 2,
    'total' => 8,
  ),
)

通过intval将每个子数组的值放入:

<?php
$data =
[
    [
        'status' => '1',
        'total'  => '2',
    ],
    [
        'status' => '3',
        'total'  => '4'
    ],
];

$result = array_map(fn($v)=>array_map('intval', $v), $data);

var_dump($result);
或者只是将树叶变换到位:

array_walk_recursive($data, function(&$v) { $v = (int) $v; });
还有一个简单的foreach,带有类型杂耍:

foreach($data as &$v) {
    $v['status']+=0;
    $v['total'] +=0;
}
unset($v);

你猜得很好。下次包括你的尝试,或者编辑并添加你的尝试,即使这是一场灾难。否则,您可能会得到负面反馈。感谢您提供的这两种方法非常好,我从中学到了很多。foreach的一行代码并不长:foreach$data as&$aforeach$a as&$v$v=int$v;未结算$v$a;如果您不关心悬空引用,可以进一步减少它。Golfed:foreach$data as&$aforeach$a as&$v$v+=0;想知道一个基本的foreach是不是快了很多……foreach的理由是它是明确的,而且可能不太容易学习/记住。此版本满足Php 4.3至8:
foreach($data as &$v) {
    $v['status']+=0;
    $v['total'] +=0;
}
unset($v);