<?php
$test = [
['id' => 1, 'countries' => 'EN,CH,SP'],
['id' => 2, 'countries' => 'GE,SP,SV'],
['id' => 3, 'countries' => 'PR,SP,IT'],
['id' => 4, 'countries' => 'EN'],
['id' => 5, 'countries' => 'SP,EN'],
['id' => 6, 'countries' => 'SV,SP,EN'],
['id' => 7, 'countries' => 'GE,SP'],
['id' => 8, 'countries' => 'FR'],
['id' => 9, 'countries' => 'RU,EN'],
['id' => 10, 'countries' => 'EN,SP,IT'],
['id' => 11, 'countries' => 'SP,GR'],
['id' => 12, 'countries' => 'GR,EN']
];
usort($test, function($a, $b) {
return [strpos($a['countries'], 'EN') === false, $a['id']] <=> [strpos($b['countries'], 'EN') === false, $b['id']];
});
var_export($test);
- Output for 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.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
- array (
0 =>
array (
'id' => 1,
'countries' => 'EN,CH,SP',
),
1 =>
array (
'id' => 4,
'countries' => 'EN',
),
2 =>
array (
'id' => 5,
'countries' => 'SP,EN',
),
3 =>
array (
'id' => 6,
'countries' => 'SV,SP,EN',
),
4 =>
array (
'id' => 9,
'countries' => 'RU,EN',
),
5 =>
array (
'id' => 10,
'countries' => 'EN,SP,IT',
),
6 =>
array (
'id' => 12,
'countries' => 'GR,EN',
),
7 =>
array (
'id' => 2,
'countries' => 'GE,SP,SV',
),
8 =>
array (
'id' => 3,
'countries' => 'PR,SP,IT',
),
9 =>
array (
'id' => 7,
'countries' => 'GE,SP',
),
10 =>
array (
'id' => 8,
'countries' => 'FR',
),
11 =>
array (
'id' => 11,
'countries' => 'SP,GR',
),
)
preferences:
200.36 ms | 404 KiB | 208 Q