I got the following array:
["person41"]=>
array(2) {
["original"]=>
string(29) "photo_1.jpg"
["confidence"]=>
float(0.99999)
}
["person42"]=>
array(2) {
["original"]=>
string(30) "original_photo_not_defined.jpg"
["confidence"]=>
float(0.99998)
}
["person33"]=>
array(2) {
["original"]=>
string(29) "photo_2018.jpg"
["confidence"]=>
float(0.99998)
}
["person43"]=>
array(2) {
["original"]=>
string(30) "original_photo_not_defined.jpg"
["confidence"]=>
float(0.9995)
}
["person44"]=>
array(2) {
["original"]=>
string(30) "original_photo_not_defined.jpg"
["confidence"]=>
float(0.9996)
}
I need to sort it in order to (keys should be kept):
1st - show elements with defined original photo (original
does NOT equal original_photo_not_defined.jpg
),
2nd - all those with original_photo_not_defined.jpg
should be sorted by confidence
from 0.99999 first. So the final array should look like following:
["person41"]=>
array(2) {
["original"]=>
string(29) "photo_1.jpg"
["confidence"]=>
float(0.99999)
}
["person33"]=>
array(2) {
["original"]=>
string(29) "photo_2018.jpg"
["confidence"]=>
float(0.99998)
}
["person42"]=>
array(2) {
["original"]=>
string(30) "original_photo_not_defined.jpg"
["confidence"]=>
float(0.99998)
}
["person44"]=>
array(2) {
["original"]=>
string(30) "original_photo_not_defined.jpg"
["confidence"]=>
float(0.9996)
}
["person43"]=>
array(2) {
["original"]=>
string(30) "original_photo_not_defined.jpg"
["confidence"]=>
float(0.9995)
}
I tried this solution:
function cmp(array $a, array $b) {
if (($cmp = strcmp($a['foo'], $b['foo'])) !== 0) {
return $cmp;
} else {
return $a['baz'] - $b['baz'];
}
}
but I'm not sure where to point that elements with original_photo_not_defined.jpg
should be placed lower and how to sort by confidence
then? Any ideas would be welcome, thank you.