将空条目替换为关联数组中的前一个元素

时间:2016-03-29 10:45:47

标签: php arrays

我有$data数组

Array
(
    [0] => Array
        (
            [match_day] => MD27
            [price] => 95.33
        )
    [1] => Array
        (
            [match_day] => MD28
            [price] => 97.82
        )
    [2] => Array
        (
            [match_day] => MD29
            [price] => 
        )
    [3] => Array
        (
            [match_day] => MD30
            [price] => 
        )
    [4] => Array
        (
            [match_day] => MD31
            [price] => 
        )
)

现在,我的要求是 - 将price属性的空条目替换为之前的price属性。

2 个答案:

答案 0 :(得分:2)

无需转到for loop您可以尝试以下代码:

$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);

工作演示是Here

答案 1 :(得分:0)

对阵列执行foreach循环,存储以前的价格值,如果当前项目有空价格,请使用previous替换它。例如:

$previous = 0;
foreach($data AS $key => $row) {
  if (empty($row['price']))
    $data[$key]['price'] = $previous;
  else
    $previous = $row['price'];
}