sort: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|x([0-9])= *<code>([^<]*)<\/code>" to "|x$1= <sqf>$2</sqf>")
m (Some wiki formatting)
Line 31: Line 31:
hint str _dev; //["tram","tara","pa","pa","ja"]</sqf>
hint str _dev; //["tram","tara","pa","pa","ja"]</sqf>


|x3= <code><nowiki>#</nowiki>define ASC true
|x3= <sqf>
<nowiki>#</nowiki>define DESC false
#define ASC true
_scores = [<nowiki/>[123,"bob",15],[123,"bill",20],[200,"dave",21],[200,"steve",11]];
#define DESC false
_scores [[sort]] DESC;
_scores = [[123,"bob",15],[123,"bill",20],[200,"dave",21],[200,"steve",11]];
hint str _scores; //<nowiki>[</nowiki>[200,"steve",11],[200,"dave",21],[123,"bob",15],[123,"bill",20]]</code>
_scores sort DESC;
hint str _scores; //[[200,"steve",11],[200,"dave",21],[123,"bob",15],[123,"bill",20]]
</sqf>


|x4= Sort buildings by distance and return position of the most distant building:
|x4= Sort buildings by distance and return position of the most distant building:
<code>_buildings = player nearObjects ["Land_Cargo_Patrol_V1_F", 500];
<sqf>
_buildings = player nearObjects ["Land_Cargo_Patrol_V1_F", 500];
_buildings = _buildings apply { [_x distance player, _x] };
_buildings = _buildings apply { [_x distance player, _x] };
_buildings sort false;
_buildings sort false;
Line 45: Line 48:
getPos (_buildings select 0 select 1),
getPos (_buildings select 0 select 1),
round (_buildings select 0 select 0)
round (_buildings select 0 select 0)
];</code>
];
</sqf>


|seealso= [[lbSortBy]] [[lnbSortBy]] [[BIS_fnc_sortAlphabetically]] [[BIS_fnc_sortBy]] [[BIS_fnc_sortNum]]
|seealso= [[lbSortBy]] [[lnbSortBy]] [[BIS_fnc_sortAlphabetically]] [[BIS_fnc_sortBy]] [[BIS_fnc_sortNum]]

Revision as of 15:25, 13 May 2022

Hover & click on the images for description

Description

Description:
Attempts to sort given array either in ascending (true) or descending (false) order.
This will modify the original array!
Groups:
Arrays

Syntax

Syntax:
array sort order
Parameters:
array: Array - Array to be sorted, can also be a nested array.

All array elements should be one of the following types:
  • String - Array of strings ["a","b","c"...]
  • Number - Array of numbers [1,2,3...]
  • Array - Array of subarrays [["a",1,2],["b",3,4],["c",5,6]...]. Subarrays should be of the same structure. Subarray elements other than String or Number will be ignored during sorting.
Mixed arrays ["a",1,[true], ...] are not supported and results are undefined.

order: Boolean - Sorting order.
Return Value:
Nothing

Examples

Example 1:
_arr = [5.21725,1.30859,4,5.03028,1]; _arr sort true; hint str _arr; //[1,1.30859,4,5.03028,5.21725]
Example 2:
_dev = ["ja","pa","pa","tram","tara"]; _dev sort false; hint str _dev; //["tram","tara","pa","pa","ja"]
Example 3:
#define ASC true #define DESC false _scores = [[123,"bob",15],[123,"bill",20],[200,"dave",21],[200,"steve",11]]; _scores sort DESC; hint str _scores; //[[200,"steve",11],[200,"dave",21],[123,"bob",15],[123,"bill",20]]
Example 4:
Sort buildings by distance and return position of the most distant building:
_buildings = player nearObjects ["Land_Cargo_Patrol_V1_F", 500]; _buildings = _buildings apply { [_x distance player, _x] }; _buildings sort false; hint format [ "Most distant building is at %1, distance %2 m", getPos (_buildings select 0 select 1), round (_buildings select 0 select 0) ];

Additional Information

See also:
lbSortBy lnbSortBy BIS_fnc_sortAlphabetically BIS_fnc_sortBy BIS_fnc_sortNum

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Posted on April 16, 2015 - 18:14 (UTC)
Killzone Kid
The algorithm for sorting subarrays: compare 1st element, if equal compare 2nd, if equal compare 3rd...etc.