| |||||||||||
| |||||||||||
PHP and natural sorting
If you sort (8, 9, 10, 11, 12), how do you want them to be output? "In the order you've just listed, Graham", you'll probably say. But if they're strings and you sort them, then you'll get the order 10, 11, 12, 8, 9 output if you just use a default sort, because the character "1" comes before the character "8" in the alphabet.
Using PHP, you could write your own sort routine (using usort) ... but there's a better way - a function called "natsort". Remember the PHP rule of thumb - if you think surely someone's done that before then often the solution will be there's a function to do that. Here's an example of the output from an illustrative program: Original 0 .. 12 Drummers Drumming 1 .. 7 Swans a'Swimming 2 .. 11 Pipers Piping 3 .. 9 Ladies Dancing 4 .. 10 Lords a'Leaping 5 .. 8 Maid a'Milking Default Sort 0 .. 10 Lords a'Leaping 1 .. 11 Pipers Piping 2 .. 12 Drummers Drumming 3 .. 7 Swans a'Swimming 4 .. 8 Maid a'Milking 5 .. 9 Ladies Dancing Numeric sort 0 .. 7 1 .. 8 2 .. 9 3 .. 10 4 .. 11 5 .. 12 Natural Sort 1 .. 7 Swans a'Swimming 5 .. 8 Maid a'Milking 3 .. 9 Ladies Dancing 4 .. 10 Lords a'Leaping 2 .. 11 Pipers Piping 0 .. 12 Drummers Drumming This program can be run from here and you can view the source code here. (written 2004-09-19 10:01:47) Associated topics are indexed under H999 - Additional PHP MaterialH107 - String Handling in PHP
Some other Articles
Call Centres, selling, and a pause for thoughtPosting 1000 letters! Dress Code Evening classes to learn PHP PHP and natural sorting Drive the drive International awareness Gym and swimming - Melksham Blue Pool Current cost in your local currency Business is the predominant user of Tomcat, Perl and Tcl 1635 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 at 50 posts per pageThis is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price. Link to Ezine home page (for reading). Link to Blogging home page (to add comments). |
| ||||||||||
PH: 01144 1225 708225 • FAX: 01144 1225 707126 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho | |||||||||||