递归运行数组中逐键值的函数


Recursive run function on value by key in array

我想运行函数或用多维数组的键替换值。

这是我拥有的数组示例。

  'data' => array
    (
        '0' => array
        (
            'id' => '2039'
            'status' => 'OK'
            'date' => 1382339688
        )
        '1' => array
        (
            'id' => '33000'
            'status' => 'OK'
            'date' => 1378645263
        )
        '2' => array
        (
            'id' => '18800'
            'status' => 'Failed'
            'date' => 1381224889
        )
        '3' => array
        (
            'id' => '34522'
            'status' => 'OK'
            'date' => 1378973015000
        )
)

例如我想调用的函数。

recursive_array_replace_by_key($array、$key、$function);

如果要修复数组中的所有日期,我会这样做:

recursive_array_replace_by_key($array, 'date, gmdate("Y-m-d''TH:i:s''Z", $value));//将所有日期值转换为格式化日期。

要替换所有状态:

recursive_array_replace_by_key($array, 'status, 'NA');//将所有状态值转换为 NA

我希望能够在不知道结构有多长的情况下在数组中搜索。

我认为下面的函数可以帮助你做到这一点。

function formatdate($array,$field,$format)
{
    foreach($array as $arr)
    {
        $arr[$field]=date($format,$arr[$field]);
    }
    return $arr;
}

调用上面的函数,如下所示formatdate($array,'date','Y-m-d'TH:i:s'Z');

希望这有帮助