Ich möchte zwei Arrays vergleichen: eines enthält die Liste der möglichen Optionen und das andere Array enthält Prioritäten.PHP: Vergleiche zwei Arrays und sortiere nach Priorität
Dies ist, wie die beiden Arrays organisiert sind:
foreach ($varsA as $varA) {
foreach ($varsB as $varB) {
$options[$varA][$varB] = $id;
$priority[$varA] = $priority + $priority[$varA];
}
}
das ist, was $ Optionen enthält:
array (
1 =>
array (
33307 => 'w',
33313 => '7',
),
2 =>
array (
33307 => 'w',
33313 => '7',
),
3 =>
array (
33307 => 'w',
33313 => '7',
),
4 =>
array (
33307 => '4',
33313 => '7',
),
)
und das ist, was $ Priorität enthält:
array (
1 => 5,
2 => 9,
3 => 9,
4 => 5,
)
I möchte die Duplikate Werte aus $ Optionen duplizieren und die eine mit den Uniques mit den niedrigsten Prioritäten behalten ty:
Die Ausgabe wäre: Array (1, 4)
Weil 1, 2, 3 sind nicht einzigartig und 1 hat die kleinste Priorität.
ich die folgende Funktion wurde mit Duplikaten zu entfernen, aber ich weiß nicht, wie ich es mit Prioritäten behandeln anpassen können:
ohne Fundament spezifisch für PHPsuper_magic($options) {
$result = array_map("unserialize", array_unique(array_map("serialize", $options)));
foreach ($result as $key => $value) {
if (is_array($value)) {
$result[$key] = super_magic($value);
}
}
return $result;
}
Schlamm ist klarer als dieser Code – Danon