如何将数组的值更改为 "required"?

How to change the values of my array to "required"?

我有这个数组:

Array
(
 [grp] => Array
     (
        [1] => Array
            (
                [firstname] => 5
                [lastname] => 
                [email] => 
                [username] => 
                [password] => 
            )
    ............
)

预期结果必须是:

Array
(
 [grp] => Array
     (
        [1] => Array
            (
                [firstname] => required
                [lastname] => required
                [email] => required
                [username] => required
                [password] => required
            )
     ............
)

我已经尝试了 array_walkarray_map 但它仍然给我这个输出:

Array
(
[0] => Array
    (
        [0] => Array
            (
                [firstname] => required
            )

        [1] => Array
            (
                [lastname] => required
            )

        [2] => Array
            (
                [email] => required
            )

        [3] => Array
            (
                [username] => required
            )

        [4] => Array
            (
                [password] => required
            )
    )

这是我的代码:

   $a = [];
   for($i = 1; $i <= count($count); $i++){
      $a[] = $count[$i];
   }

    function map($a)
    {
        $newArr = [];
       foreach($a as $key => $val)
       {
           $newArr[] = [$key => 'required'];
       }
        return $newArr;
    }

    function walk($a, $key)
    {
        $key = 'required';
       return $key;

    }

     print_r(array_walk($a, 'walk'));
     print_r(array_map('map', $a, $a));

帮我摆脱这种情况。谢谢!

$array['grp'][1] = array_fill_keys(array_keys($array['grp'][1]), 'required');

如果 $array['grp'] 中有超过 [1] 个,循环:

foreach ($array['grp'] as &$values) {
    $values = array_fill_keys(array_keys($values), 'required');
}

或者,当然,map

$array['grp'] = array_map(function (array $values) {
    return array_fill_keys(array_keys($values), 'required');
}, $array['grp']);

如果您基本上想要替换任意嵌套数组中的每个 叶子 ,则有 array_walk_recursive:

array_walk_recursive($array, function (&$value) { $value = 'required'; });
foreach ( $array["grp"] as $key => $val ) {
   $array["grp"][$key] = "required";
}

使用嵌套循环

foreach ($array as $i => $subarray1) {
    foreach ($subarray1 as $j => $subarray2) {
        foreach (array_keys($subarray2) as $k) {
            $array[$i][$j][$k] = 'required';
        }
    }
}