编辑代码

<?php 

function assembleArray($key, $value, $num) {
    $newArray = [];
    if (is_string($value)) {
        if (is_string($key)) {
            $newArray = array_fill(0, $num, [$key=>$value]);
        }else{
            $newArray = array_fill(0, $num, array_fill_keys($key, $value));            
        }
    } else if (is_array($value)) {     //  判断
        if ( $num < count($value) ) {
            for ($i=0; $i<$num; $i++) {
                if (count($value[$i]) == count($key)) {
                    $newArray[] = array_combine($key, $value[$i]);
                } else {
                    $newArray[] = array_fill_keys($key, 0);
                }
            }
        }else{
            if (is_array($key)) {
                foreach ($value as $item) {
                    if (is_array($item) && count($item) == count($key)) {
                        $newArray[] = array_combine($key, $item);
                    } else {
                        $newArray[] = array_fill_keys($key, 0);
                    }
                }  
                if ($num - count($value)) {
                    foreach (array_fill(0, ($num - count($value)) , array_fill_keys($key, 0)) as $v) {
                        $newArray[] = $v;
                    }
                }
            } else {
                for ($i=0; $i<$num; $i++) {
                    $newArray[] = [$key=>(isset($value[$i]) ? $value[$i] : 0)];
                }
            }   
        }
    }
    return $newArray;
}

// $key = ['a', 'b', 'c'];
// $value = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

$key = ['item_type', 'item_expenses_money'];
$value = [[0 => 1, 1 => 0.0], [0 => 2, 1 => 0.0], [0 => 3, 1 => 0.0], [0 => 4, 1 => 0.0], [0 => 5, 1 => 0.0], [0 => 6, 1 => 0.0], [0 => 7, 1 => 0.0], [0 => 8, 1 => 0.0]];
$num = 8;

$result = assembleArray($key, $value, $num);
print_r($result);

// $key = 'a';
// $value = [1, 2, 3];
// $num = 4;

// $result = assembleArray($key, $value, $num);
// print_r($result);

// $key = ['a', 'b', 'c'];
// $value = 'default';
// $num = 4;

// $result = assembleArray($key, $value, $num);
// print_r($result);

// $key = 'key';
// $value = 'value';
// $num = 4;

// $result = assembleArray($key, $value, $num);
// print_r($result);