<?php
$data = array(
3698 => array('brand' => 'Brand 1', 'rate' => 198, 'availability' => 0, 'stopsales' => 0, 'conditions' => 1, 'currencycode' => 1),
1805 => array('brand' => 'Brand 2', 'rate' => 200.6, 'availability' => 0, 'stopsales' => 0, 'conditions' => 1, 'currencycode' => 1),
1801 => array('brand' => 'Brand 3', 'rate' => 202.5, 'availability' => 0, 'stopsales' => 0, 'conditions' => 1, 'currencycode' => 1),
1810 => array('brand' => 'Brand 1', 'rate' => 172, 'availability' => 0, 'stopsales' => 0, 'conditions' => 1, 'currencycode' => 1),
1812 => array('brand' => 'Brand 1', 'rate' => 172, 'availability' => 0, 'stopsales' => 0, 'conditions' => 1, 'currencycode' => 1),
);
$hotelBrand = 'Brand 3';
uasort($data, function ($a, $b) use ($hotelBrand) {
$a1 = levenshtein($hotelBrand, $a['brand']);
$b1 = levenshtein($hotelBrand, $b['brand']);
if ($a1 === $b1) { // if same name sort by rate
return $a['rate'] > $b['rate'] ? 1 : -1;
} else if ($a1 != $b1) {
return $a1 > $b1 ? 1 : -1;
}
return 0;
});
print_r($data);
- Output for 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- Array
(
[1801] => Array
(
[brand] => Brand 3
[rate] => 202.5
[availability] => 0
[stopsales] => 0
[conditions] => 1
[currencycode] => 1
)
[1810] => Array
(
[brand] => Brand 1
[rate] => 172
[availability] => 0
[stopsales] => 0
[conditions] => 1
[currencycode] => 1
)
[1812] => Array
(
[brand] => Brand 1
[rate] => 172
[availability] => 0
[stopsales] => 0
[conditions] => 1
[currencycode] => 1
)
[3698] => Array
(
[brand] => Brand 1
[rate] => 198
[availability] => 0
[stopsales] => 0
[conditions] => 1
[currencycode] => 1
)
[1805] => Array
(
[brand] => Brand 2
[rate] => 200.6
[availability] => 0
[stopsales] => 0
[conditions] => 1
[currencycode] => 1
)
)
- Output for 5.6.0 - 5.6.40
- Array
(
[1801] => Array
(
[brand] => Brand 3
[rate] => 202.5
[availability] => 0
[stopsales] => 0
[conditions] => 1
[currencycode] => 1
)
[1812] => Array
(
[brand] => Brand 1
[rate] => 172
[availability] => 0
[stopsales] => 0
[conditions] => 1
[currencycode] => 1
)
[1810] => Array
(
[brand] => Brand 1
[rate] => 172
[availability] => 0
[stopsales] => 0
[conditions] => 1
[currencycode] => 1
)
[3698] => Array
(
[brand] => Brand 1
[rate] => 198
[availability] => 0
[stopsales] => 0
[conditions] => 1
[currencycode] => 1
)
[1805] => Array
(
[brand] => Brand 2
[rate] => 200.6
[availability] => 0
[stopsales] => 0
[conditions] => 1
[currencycode] => 1
)
)
preferences:
220.88 ms | 404 KiB | 293 Q