<?php
$multidimensionArray = [
"A2" => [
0 => "A1",
1 => "A2",
2 => "A3",
],
"A1" => [
0 => "A1",
1 => "A6",
2 => "A5",
3 => "A2",
],
"A6" => [
0 => "A3",
],
"A3" => [
0 => "A3",
1 => "A2",
],
"A5" => [
0 => "A4"
],
"A4" => [
0 => "A4",
1 => "A3",
]
];
$singeArray = [
"A1" => 675.58333333333,
"A2" => 1786.75,
"A3" => 2897.9166666667,
"A4" => 4009.0833333333,
"A5" => 5120.25,
"A6" => 6231.4166666667,
];
$results = [];
foreach ($multidimensionArray as $key => $valueArr) {
## filter out all values of interest from $singleArray
$filteredValues = array_filter($singeArray, function ($value, $identifier) use ($valueArr) {
return in_array($identifier, $valueArr);
}, ARRAY_FILTER_USE_BOTH);
## Here we get the average
$results[$key] = array_sum($filteredValues) / count($filteredValues);
}
print_r($results);
preferences:
60.1 ms | 402 KiB | 5 Q