Array_multisort() bietet in PHP ein leistungsstarkes Tool zum Sortieren mehrdimensionaler Arrays basierend auf mehreren Sortierkriterien. Die vordefinierte Anzahl von Argumenten kann jedoch in bestimmten Szenarien die Flexibilität einschränken.
Um eine dynamische Sortierung mit einer unbekannten Anzahl von Argumenten zu erreichen, ziehen Sie den folgenden Ansatz in Betracht:
Dynamische Argumentgenerierung
Definieren Sie zunächst eine Variable, die die Sortierregeln basierend auf Bedingungen in Ihrem Skript dynamisch generiert. Zum Beispiel:
<code class="php">$dynamicSort = "$sort1,SORT_ASC,$sort2,SORT_ASC,$sort3,SORT_ASC";</code>
call_user_func_array()
Um die dynamischen Argumente an array_multisort() zu übergeben, verwenden Sie die Funktion call_user_func_array(). Mit dieser Funktion können Sie eine Funktion mit einer beliebigen Anzahl von Argumenten aufrufen, die in einem Array gespeichert sind.
Geänderter array_multisort()-Aufruf
Ändern Sie den array_multisort()-Aufruf, um ihn einzuschließen die dynamische Sortierregelzeichenfolge und das zu sortierende Array als letztes Argument:
<code class="php">$param = array_merge(explode(",", $dynamicSort), array($arrayToSort)); call_user_func_array('array_multisort', $param);</code>
Durch die Verwendung von call_user_func_array() und die dynamische Generierung der Sortierregeln können Sie eine flexible und kontextabhängige Sortierung von Arrays in PHP erreichen .
Das obige ist der detaillierte Inhalt vonWie kann die Array-Sortierung mit dynamischen Argumenten in array_multisort() verbessert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!