首页 > 解决方案 > 重构数组数据,根据已有数据填充空值

问题描述

数据

Array
(
    [0] => Array
        (
            [member_id] => 1
            [total] => 0
            [numrow] => 1
        )

    [1] => Array
        (
            [member_id] => 16
            [total] => 0
            [numrow] =>        //should fill in 3
        )

    [2] => Array
        (
            [member_id] => 5
            [total] => 3
            [numrow] => 0
        )

    [3] => Array
        (
            [member_id] => 6
            [total] => 5
            [numrow] =>     //should fill in 4
        )

    [4] => Array
        (
            [member_id] => 92
            [total] => 15
            [numrow] => 2
        )
)

很抱歉问了愚蠢的问题。目前,我一直停留在这个逻辑中,我想填充数组内部的空数据值,它将循环所有数据并获取当前的numrow数据然后+1并填充空值。有哪位高手可以帮忙解答一下吗?

标签: phparrays

解决方案


以下逻辑可能会对您有所帮助 - 源数组称为$arr. numrow您可以使用以下方法获取列的最大值max(array_column())

$max = max(array_column($arr, 'numrow'));
foreach($arr as $key0 => &$value0) {
    foreach($value0 as $key1 => &$value1) {
        if($key1 === 'numrow' && $value1 === '') {
            $value1 = ++$max;
        }
    }
}

工作演示


推荐阅读