php 怎么让多维数组中元素个数相同,并且键值也一样

文字太多了,所以只能改成图片了
怎么让多维数组中元素个数相同、排序顺序、键值也相同;
如果该元素不存在,则用本身数组中其它数值进行赋值
举例:如果一个数组中有3个元素,
Array
(
[2015-10-10] => 541
[2015-10-11] => 354
[2015-10-13] => 265
)
变成下面这样子
Array
(
[2015-10-09] => 541
[2015-10-10] => 541
[2015-10-11] => 354
[2015-10-12] => 354
[2015-10-13] => 265
)
最新回答
暴力萌萌

2024-09-22 04:25:18

<?php
$arrs = array(
    '4' => array(
        '2010-10-10' => 42,
        '2010-10-11' => 43,
        '2010-10-12' => 44,
        '2010-10-13' => 45
    ),
    '3' => array(
        '2010-10-09' => 33
    ),
    '2' => array(
        '2010-10-10' => 22,
        '2010-10-11' => 23,
        '2010-10-13' => 25
    ),
);
function changeIt($arrs){
    $keys = array();
    foreach($arrs as $arr){
        $keys = array_merge($keys, array_keys($arr));
    }
    $keys = array_unique($keys);
    sort($keys);

    foreach($arrs as &$arr){
        $default = current($arr);
        foreach($keys as $key){
            if(!isset($arr[$key])){
                $arr[$key] = $default;
            } else {
                $default = $arr[$key];
            }
        }
        ksort($arr);
    }
    return $arrs;
}
$arrs = changeIt($arrs);
print_r($arrs);
exit;
杯别

2024-09-22 08:02:03

只针对这道题还是其他可能也要考虑?
追问
忘记说了,有可能这个多维数组只有一个数组,并不是三个
追答
只针对二维数组?
追问
是的,当然如果有一个程序能处理多种情况下的最好了,就像系统函数一样,只需要赋予他参数,该函数会自动解析它是几数组并返回信息就好了
追答
我晕,已经有大神回答了。。。我都没看见。。。
追问
哈哈,大神你来晚了一步,不过也没关系,下次有问题再请教你,谢谢啊