Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组与公共值组合_Php_Arrays - Fatal编程技术网

Php 将数组与公共值组合

Php 将数组与公共值组合,php,arrays,Php,Arrays,我有一组日期,如下所示: Array ( [0] => '2014-01-01' [1] => '2014-01-02' [2] => '2014-01-03' [3] => '2014-01-04' [4] => '2014-01-05' [5] => '2014-01-06' [6] => '2014-01-07' ) [All] => Array ( [0] =

我有一组日期,如下所示:

Array
(
    [0] => '2014-01-01'
    [1] => '2014-01-02'
    [2] => '2014-01-03'
    [3] => '2014-01-04'
    [4] => '2014-01-05'
    [5] => '2014-01-06'
    [6] => '2014-01-07'
)
[All] => Array
    (
        [0] => Array
            (
                [count] => 2
                [date] => 2014-01-06
            )

        [1] => Array
            (
                [count] => 1
                [date] => 2014-01-03
            )

        [2] => Array
            (
                [count] => 43
                [date] => 2013-12-11
            )

        [3] => Array
            (
                [count] => 103
                [date] => 2013-12-10
            )

        [4] => Array
            (
                [count] => 128
                [date] => 2013-12-09
            )

        [5] => Array
            (
                [count] => 75
                [date] => 2013-12-08
            )

        [6] => Array
            (
                [count] => 107
                [date] => 2013-12-07
            )
Array
(
    [2014-01-01] => 0
    [2014-01-02] => 0
    [2014-01-03] => 1
    [2014-01-04] => 0
    [2014-01-05] => 0
    [2014-01-06] => 2
    [2014-01-07] => 0
)
我还有另一组日期和计数,如下所示:

Array
(
    [0] => '2014-01-01'
    [1] => '2014-01-02'
    [2] => '2014-01-03'
    [3] => '2014-01-04'
    [4] => '2014-01-05'
    [5] => '2014-01-06'
    [6] => '2014-01-07'
)
[All] => Array
    (
        [0] => Array
            (
                [count] => 2
                [date] => 2014-01-06
            )

        [1] => Array
            (
                [count] => 1
                [date] => 2014-01-03
            )

        [2] => Array
            (
                [count] => 43
                [date] => 2013-12-11
            )

        [3] => Array
            (
                [count] => 103
                [date] => 2013-12-10
            )

        [4] => Array
            (
                [count] => 128
                [date] => 2013-12-09
            )

        [5] => Array
            (
                [count] => 75
                [date] => 2013-12-08
            )

        [6] => Array
            (
                [count] => 107
                [date] => 2013-12-07
            )
Array
(
    [2014-01-01] => 0
    [2014-01-02] => 0
    [2014-01-03] => 1
    [2014-01-04] => 0
    [2014-01-05] => 0
    [2014-01-06] => 2
    [2014-01-07] => 0
)
我想创建一个新的关联数组,其中所有键都是上面第一个数组中的日期,所有值要么是与相应日期匹配的计数,要么是“0”

例如,新阵列的外观如下所示:

Array
(
    [0] => '2014-01-01'
    [1] => '2014-01-02'
    [2] => '2014-01-03'
    [3] => '2014-01-04'
    [4] => '2014-01-05'
    [5] => '2014-01-06'
    [6] => '2014-01-07'
)
[All] => Array
    (
        [0] => Array
            (
                [count] => 2
                [date] => 2014-01-06
            )

        [1] => Array
            (
                [count] => 1
                [date] => 2014-01-03
            )

        [2] => Array
            (
                [count] => 43
                [date] => 2013-12-11
            )

        [3] => Array
            (
                [count] => 103
                [date] => 2013-12-10
            )

        [4] => Array
            (
                [count] => 128
                [date] => 2013-12-09
            )

        [5] => Array
            (
                [count] => 75
                [date] => 2013-12-08
            )

        [6] => Array
            (
                [count] => 107
                [date] => 2013-12-07
            )
Array
(
    [2014-01-01] => 0
    [2014-01-02] => 0
    [2014-01-03] => 1
    [2014-01-04] => 0
    [2014-01-05] => 0
    [2014-01-06] => 2
    [2014-01-07] => 0
)
这有意义吗?请随时提出任何问题。谢谢大家!

请尝试以下代码:

$result = array();
foreach($firstArray as $f){
    foreach($secondArray as $s){
        if($s['date'] == $f) $result[$f] = $s['count'];
    }
    if(!array_key_exists($f, $result)) $result[$f] = 0;
}
此处
$all
是带有日期和计数索引的数组。
$old
是现有的数组。

这是一个2行程序:

// use dates as index and set everything to 0
$result = array_fill_keys($x, 0));
// copy over existing counts
array_walk($all, function($v) use (&$result) { if (array_key_exists($v['date'], $result)) { $result[$v['date']] = $v['count'];}});

第一个问题:你尝试了什么?我在for循环中尝试了foreach,但得到的结果太多了。第二个问题:你能发布你尝试过的代码吗?foreach
ALL
array并检查你的第一个数组中是否存在
date
键。使用php.net阅读array\u merge、array\u unique和array\u filter。可以为您节省很多难看的foreach循环。合并数组将混合使用键-字符串和整数。