Да, большинство браузеров делают это, но потом снова, как вы сказали, некоторые не делают (firefox), поэтому не рассчитывайте на это. Также легко переписать эти переменные в js, я могу себе представить, что что-то вроде container
может быть перезаписано прямо на летучей мыши кем-то, использующим эту переменную, не объявляя ее в первую очередь.
Невозможно включить это в chrome afaik, но даже тогда это может быть хлопот, чтобы понять это и исправить его для всех браузеров.
Не придавайте этому слишком большого значения, но остерегайтесь этого. Это одна из тех причин, по которой вы избегаете глобальной области переменных.
. Для завершения этих браузеров это делается по умолчанию: Chrome, IE9 & amp; compat, Opera
Обновление: будущие версии ECMAScript могут включать в себя некоторую опцию, так как да, обсуждение продолжается, но это не будет исправлять проблему в старых браузерах.
Ниже должен работать фрагмент
<?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);
Вы можете использовать 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
)
)