<?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 = ['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);