PHP array with array value into multiple arrays with same key
Assuming you have the same number of items for each key, here are two alternative approaches:
Foreach:
&lt;?php
$setParams = [
    'repeat_delay' =&gt; [23, 1],
    'repeat_type'  =&gt; ['Hour', 'Day'],
];

$i = 0;
foreach($setParams['repeat_delay'] as $k =&gt; $v) {
    $result[$i]['repeat_delay'] = $v;
    $result[$i]['repeat_type']  = $setParams['repeat_type'][$k];
    $i++;
}

Array map:
$result = array_map(null, ...array_values($setParams));
$keys   = array_keys($setParams);
$result = array_map(function($v) use ($keys) { return array_combine($keys, $v);}, $result);

Both result in $result holding the following:
array (
  0 =&gt; 
  array (
    'repeat_delay' =&gt; 23,
    'repeat_type' =&gt; 'Hour',
  ),
  1 =&gt; 
  array (
    'repeat_delay' =&gt; 1,
    'repeat_type' =&gt; 'Day',
  ),
)

You could rewrite the last array_map with the array_combine to:
$result = array_map(fn($v) =&gt; array_combine($keys, $v), $result);

Using a short arrow function for brevity.