С вашими массивами, я не думаю, что есть разумный способ сделать это, но это должно работать:
<?php
$datesArray = [
[
'label' => 'July 18 2020',
'y' => 0,
],
[
'label' => 'July 19 2020',
'y' => 0,
],
[
'label' => 'July 20 2020',
'y' => 0,
],
[
'label' => 'July 21 2020',
'y' => 0,
],
];
$valuesArray = [
[
'label' => 'July 20 2020',
'y' => 3,
],
[
'label' => 'July 18 2020',
'y' => 1,
],
];
foreach($datesArray as &$dateArray) {
foreach($valuesArray as $valueArray) {
// use ?? if php version allows it, else do isset($valueArray['label']) ? $valueArray['label'] : null;
$currentLabel = $valueArray['label'] ?? null;
if ($currentLabel === $dateArray['label']) {
$dateArray['y'] = $valueArray['y'] ?? 0;
}
}
}
print_r($datesArray);
return $datesArray;
Результат:
Array
(
[0] => Array
(
[label] => July 18 2020
[y] => 1
)
[1] => Array
(
[label] => July 19 2020
[y] => 0
)
[2] => Array
(
[label] => July 20 2020
[y] => 3
)
[3] => Array
(
[label] => July 21 2020
[y] => 0
)
)
Это займет квадратичное c раз, если вам нужно что-то более быстрое, вам придется изменить индексы ваших массивов, чтобы ускорить поиск.
snippet