2013-03-15 7 views
7
sort($new, SORT_NATURAL | SORT_FLAG_CASE); 

SORT_NATURAL ist neu in PHP 5.4, aber ich habe 5.3.10 auf meinem localhost läuft (ubuntu 12.04) nicht wirklich die Absicht, weil das zu aktualisieren.

Was wäre das Äquivalent in PHP 5.3, ich habe gelesen, dass ist genau wie Natsort.

ist natsort($new, SORT_FLAG_CASE); das gleiche?

+0

5.4 ist die aktuelle Version von PHP. Du solltest upgraden. – Tchoupi

+3

'natsort' nimmt keine Flags, aber es scheint auch ein' natcasesort' zu geben, bei dem die Groß-/Kleinschreibung nicht beachtet wird. Das würde mich glauben machen, dass 'natsort' case- * sensitive * ist. Also ich denke du willst 'natcasesort ($ new)'. –

+0

natsort() unterstützt keine zusätzlichen Argumente. Sie können keine Flags an sie übergeben, also nein ... es ist nicht gleichwertig: http://php.net/nat_sort –

Antwort

11

Die PHP Manual weist darauf hin, dass natsort ($array) ist das Äquivalent von sort($array,SORT_NATURAL); es zeigt auch, dass SORT_FLAG_CASE nicht bis 5.4.0 entweder hinzugefügt wurde.

Sie können natcasesort($array) verwenden, das entspricht sort($array,SORT_NATURAL | SORT_FLAG_CASE).

1

Während sie im Wesentlichen gleich sind, ist der wichtige Unterschied zwischen natsort($array) und sort($array, SORT_NATURAL) Schlüsselzuordnungen.

natsort() behält Schlüsselzuordnungen bei, dh Schlüssel und Werte bleiben verknüpft.

Allerdings hat sort() KEINE Hauptverknüpfungen, daher werden den Schlüsseln Werte zugewiesen, die auf ihrer neuen Reihenfolge basieren.