Jump to content
Larry Ullman's Book Forums

Search the Community

Showing results for tags 'usort'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Single Editions
    • Modern Javascript: Develop and Design
    • The Yii Book
    • Effortless Flex 4 Development
    • Building a Web Site with Ajax: Visual QuickProject
    • Ruby: Visual QuickStart Guide
    • C++ Programming: Visual QuickStart Guide
    • C Programming: Visual QuickStart Guide
    • Adobe AIR: Visual QuickPro Guide
  • PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide
    • PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (5th Edition)
    • PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (4th Edition)
    • PHP 6 and MySQL 5 for Dynamic Web Sites: Visual QuickPro Guide (3rd Edition)
    • PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (2nd Edition)
    • PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide (1st Edition)
  • PHP for the Web: Visual QuickStart Guide
    • PHP for the Web: Visual QuickStart Guide (5th Edition)
    • PHP for the Web: Visual QuickStart Guide (4th Edition)
    • PHP for the Web: Visual QuickStart Guide (3rd Edition)
    • PHP for the World Wide Web: Visual QuickStart Guide (2nd Edition)
    • PHP for the World Wide Web: Visual QuickStart Guide (1st Edition)
  • Effortless E-commerce with PHP and MySQL
    • Effortless E-Commerce with PHP and MySQL (2nd Edition)
    • Effortless E-Commerce with PHP and MySQL
  • PHP Advanced: Visual QuickPro Guide
    • PHP Advanced and Object-Oriented Programming: Visual QuickPro Guide (3rd Edition)
    • PHP 5 Advanced: Visual QuickPro Guide (2nd Edition)
    • PHP Advanced: Visual QuickPro Guide
  • MySQL: Visual QuickStart Guide
    • MySQL: Visual QuickStart Guide (2nd Edition)
    • MySQL: Visual QuickStart Guide (1st Edition)
  • Other
    • Announcements
    • Newsletter, Blog, and Other Topics
    • Forum Issues
    • Social

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 1 result

  1. My question (long winded...sorry!): I'm a little confused at exactly how usort works and what it expects from a user created comparison function. According to PHP.net "The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second." The examples on the same page use the following function to do a very simple numeric comparison: function cmp($a, $b){ if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } This would return either a +ve, -ve or 0 value depending on the comparison result. This is (as PHP.net says in the description above) what usort expects. Your scripts in Chapter 1 (sort.php) use the following much simpler function for numeric comparison: function grade_sort ($x, $y) { return ($x['grade'] < $y['grade']); } The way I see it this only returns a 1 (+ve) or 0 value (Boolean) as it is a simple "less than" comparison. This would make me think that values which would have returned a -ve return and subsequently be moved in the array using PHP.net's method will return 0 and remain static using your method, and therefore the array would require many more iterations for a complete sort. However, when I scripted both examples (I modified your sort.php script) and had it print the iteration number, comparison details and final returned values as it sorted the array I saw no difference between the number of iterations performed or the values compared. The returned values werek as I expected, where your method returned 0's for everything that didn't match your "less than" comparison and PHP.net's returned all three values, but ultimately it made no difference to how the array was sorted. Can you explain what is happening here? Is usort only concerned with a simple Boolean response despite PHP.net's description that it would prefer 3 types of return? It certainly seems the case...or of course I have the entire theory totally wrong! Thanks, Rich
×
×
  • Create New...