Req #54259 [Fbk->NoF]: Add SORT_NONE type to array_mulitsort

From: Date: Sun, 21 Feb 2021 04:22:08 +0000
Subject: Req #54259 [Fbk->NoF]: Add SORT_NONE type to array_mulitsort
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-232299@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=54259&edit=1 ID: 54259 Updated by: php-bugs@lists.php.net Reported by: brad dot froehle at gmail dot com Summary: Add SORT_NONE type to array_mulitsort -Status: Feedback +Status: No Feedback Type: Feature/Change Request Package: Arrays related Operating System: OS X 10.6 PHP Version: 5.3.5 Assigned To: cmb Private report: N New Comment: No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Re-Opened". Thank you. Previous Comments: ------------------------------------------------------------------------ [2021-02-12 16:36:26] cmb@php.net I fail to see why you couldn't use SORT_REGULAR[1]. [1] <https://3v4l.org/iFDlV> ------------------------------------------------------------------------ [2011-03-15 20:49:12] brad dot froehle at gmail dot com Description: ------------ It'd be useful to have a SORT_NONE option in the array_multisort function. This would allow users to specify that they do not care to sort along a particular index. In the sample code below, I've attached one possible use arising in Drupal. (See http://drupal.org/node/972536). Generically, we want to sort some array ($menu) before inserting it into the database. To do so, we first compute the desired sort order ($sort) and then call the array_multisort function as array_multisort($sort, SORT_NUMERIC, $menu); This works great, sorting $menu according to the sort order in $sort, however if $menu contains any objects the array_multisort function throws an error (Notice: Object of class stdClass could not be converted to int in ...). I'm proposing the addition of a SORT_NONE option so that the function call could instead be array_multisort($sort, SORT_NUMERIC, $menu, SORT_NONE); This would not throw an error since no comparisons would be done with the attributes of $menu. Implementing this should be relatively straightforward, I would imagine. Test script: --------------- $sort = array( 'A' => 2, 'A' => 1, 'B' => 1, ); $menu['A'] = array( 'access' => array(1), ); $menu['B'] = array( 'access' => array((object) array('a', 'b')), ); $menu['C'] = array( 'access' => array(0), ); array_multisort($sort, SORT_NUMERIC, $menu, SORT_NONE); Expected result: ---------------- $sort = Array ( [C] => 1 [B] => 1 [A] => 2 ) $menu = Array ( [C] => Array ( [access] => Array ( [0] => 0 ) ) [B] => Array ( [access] => Array ( [0] => stdClass Object ( [0] => a [1] => b ) ) ) [A] => Array ( [access] => Array ( [0] => 1 ) ) ) Actual result: -------------- (Not applicable, since this is a feature request). ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=54259&edit=1

« previous php.bugs (#232299) next »