Как совместить два массива и значения push?

Да, большинство браузеров делают это, но потом снова, как вы сказали, некоторые не делают (firefox), поэтому не рассчитывайте на это. Также легко переписать эти переменные в js, я могу себе представить, что что-то вроде container может быть перезаписано прямо на летучей мыши кем-то, использующим эту переменную, не объявляя ее в первую очередь.

Невозможно включить это в chrome afaik, но даже тогда это может быть хлопот, чтобы понять это и исправить его для всех браузеров.

Не придавайте этому слишком большого значения, но остерегайтесь этого. Это одна из тех причин, по которой вы избегаете глобальной области переменных.

. Для завершения этих браузеров это делается по умолчанию: Chrome, IE9 & amp; compat, Opera

Обновление: будущие версии ECMAScript могут включать в себя некоторую опцию, так как да, обсуждение продолжается, но это не будет исправлять проблему в старых браузерах.

-1
задан Script Lover 17 January 2019 в 11:07
поделиться

2 ответа

Ниже должен работать фрагмент

<?php
$dates =  [
    0 => "2019-01-17",
    1 => "2019-01-16",
    2 => "2019-01-15",
    3 => "2019-01-14",
    4 => "2019-01-13",
    5 => "2019-01-12",
    6 => "2019-01-11",
    7 => "2019-01-10"
];

$Fresh_Record =  [
    "date" => [
        0 => "2019-01-10",
        1 => "2019-01-14"
    ],
    "counter" => [
        0 => 1000.0,
        1 => 500.0
    ]
];

$arrayMap = [
    'date' => [],
    'counter' => []
];

foreach($dates as $index => $date){
    $count = 0;
    $foundIndex = array_search($date, $Fresh_Record['date']);

    if ($foundIndex !== false) {
        $count = $Fresh_Record['counter'][$foundIndex];
    }
    $arrayMap['date'][$index] = $date;
    $arrayMap['counter'][$index] = $count;
}

var_dump($arrayMap);
0
ответ дан Duy Nguyen Hoang 17 January 2019 в 11:07
поделиться

Вы можете использовать array_search , чтобы проверить, существует ли индекс на дату, и использовать тот же индекс для счетчика в Fresh_Record:

<?php
$dates =  [
  0 => "2019-01-17",
  1 => "2019-01-16",
  2 => "2019-01-15",
  3 => "2019-01-14",
  4 => "2019-01-13",
  5 => "2019-01-12",
  6 => "2019-01-11",
  7 => "2019-01-10"
];

$Fresh_Record =  [
    "date" =>  [
        0 => "2019-01-10",
        1 => "2019-01-14"
    ],
    "counter" =>  [
        0 => 1000.0,
        1 => 500.0
    ]
];

foreach($dates as $date){
    $map_array['date'][] = $date;
    $index = array_search($date, $Fresh_Record['date']);
    if($index !== false){
        $map_array['counter'][] = $Fresh_Record['counter'][$index];
    } else {
        $map_array['counter'][] = 0;
    }
}

print_r($map_array);

Будет выводить:

Array
(
    [date] => Array
        (
            [0] => 2019-01-17
            [1] => 2019-01-16
            [2] => 2019-01-15
            [3] => 2019-01-14
            [4] => 2019-01-13
            [5] => 2019-01-12
            [6] => 2019-01-11
            [7] => 2019-01-10
        )

    [counter] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 500
            [4] => 0
            [5] => 0
            [6] => 0
            [7] => 1000
        )

)
0
ответ дан Laurens 17 January 2019 в 11:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: