3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = Array ( Array ( 'match_day' => 'MD27', 'price' => 95.33 ), Array ( 'match_day' => 'MD28', 'price' => 97.82 ), Array ( 'match_day' => 'MD29', 'price' => null ), Array ( 'match_day' => 'MD30', 'price' => null ), Array ( 'match_day' => 'MD31', 'price' => null ) ); $result = []; array_walk($data, function($v,$k) use (&$result){ $result[$k] = $v; if(!isset($result[$k]['price']) || $result[$k]['price'] == null){ $result[$k]['price'] = $result[$k - 1]['price']; } }); print_r($result);
Output for 5.5.0 - 5.5.35, 5.6.0 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.29 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
Array ( [0] => Array ( [match_day] => MD27 [price] => 95.33 ) [1] => Array ( [match_day] => MD28 [price] => 97.82 ) [2] => Array ( [match_day] => MD29 [price] => 97.82 ) [3] => Array ( [match_day] => MD30 [price] => 97.82 ) [4] => Array ( [match_day] => MD31 [price] => 97.82 ) )

preferences:
125.32 ms | 405 KiB | 212 Q