Einführung in die Methode zum Sortieren zweidimensionaler Arrays in PHP unter Beibehaltung der Schlüsselnamen (Codebeispiel)

不言
Freigeben: 2023-04-05 12:20:02
nach vorne
2223 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine Einführung in die Methode zum Sortieren zweidimensionaler Arrays unter Beibehaltung der Schlüsselnamen (ich hoffe, dass er für Freunde in Not eine Referenz darstellt). wird Ihnen nützlich sein.

Um ein zweidimensionales Array nach dem angegebenen Schlüsselnamen zu sortieren, fällt mir als Erstes die Funktion array_multisort ein. Ich habe bereits einen Artikel über die Verwendung von array_multisort geschrieben. Schauen wir uns ein Beispiel an:

<?php
$data = array(
    1001 => array(
        'age' => 22,
        'name' => '鸠摩智'
    ),
    1007 => array(
        'age' => 21,
        'name' => '慕容复'
    ),
    1004 => array(
        'age' => 27,
        'name' => '乔帮主'
    )
);
Nach dem Login kopieren
 

 = array_column(, &#39;age&#39;(, SORT_ASC, ();
Nach dem Login kopieren

Aufmerksame Freunde werden sehen, dass der Schlüsselname zurückgesetzt wurde und der Schlüsselname bei 0 beginnt. Offensichtlich kann dies der Fall sein nicht das gewünschte Ergebnis sein. Wie kann der Schlüsselname unverändert bleiben?

Schauen wir uns ein weiteres Beispiel an:

$data = array(
=> array(
        &#39;age&#39; => 22,
        &#39;name&#39; => &#39;鸠摩智&#39;
    ),
=> array(
        &#39;age&#39; => 21,
        &#39;name&#39; => &#39;慕容复&#39;
    ),
=> array(
        &#39;age&#39; => 27,
        &#39;name&#39; => &#39;乔帮主&#39;
    )
);
//根据字段age对数组$data进行降序排列
$data = arraySort($data, "age", "desc" );
print_r($data);

/**
 * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序
 * @param array $arr 将要排序的数组
 * @param string $keys 指定排序的key
 * @param string $type 排序类型 asc | desc
 * @return array
 */
function arraySort($arr, $keys, $type = &#39;asc&#39;)
{
    $keysvalue = $new_array = array();
    foreach ($arr as $k => $v) {
        $keysvalue[$k] = $v[$keys];
    }

    if ($type == &#39;asc&#39;) {
        natsort($keysvalue);
    }
    if ($type == &#39;desc&#39;) {
        natsort($keysvalue);
        $keysvalue = array_reverse($keysvalue, TRUE); // 将原数组中的元素顺序翻转,如果第二个参数指定为 true,则元素的键名保持不变
    }
    foreach ($keysvalue as $k => $v) {
        $new_array[$k] = $arr[$k];
    }
    return $new_array;
}
Nach dem Login kopieren

Hier können wir auch die Funktion arraySort vereinfachen, und das Ergebnis wird dasselbe sein:

/**
 * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序
 * @param array $arr 将要排序的数组
 * @param string $keys 指定排序的key
 * @param string $type 排序类型 asc | desc
 * @return array
 */
function arraySort($arr, $keys, $type = &#39;asc&#39;)
{
    $keysvalue = $new_array = array();
    foreach ($arr as $k => $v) {
        $keysvalue[$k] = $v[$keys];
    }

    $type == &#39;asc&#39; ? asort($keysvalue) : arsort($keysvalue);
    foreach ($keysvalue as $k => $v) {
        $new_array[$k] = $arr[$k];
    }
    return $new_array;
}
Nach dem Login kopieren

Aus den obigen Ergebnissen können wir sehen:


Der Schlüsselname bleibt unverändert. Das Implementierungsprinzip ist sehr einfach. Nehmen Sie zuerst den Schlüsselnamen heraus, sortieren Sie dann die Schlüsselnamen und weisen Sie dann den entsprechenden Schlüsselnamen Werte zu, um ein neues Array zu bilden und zurückzugeben.

Wie Sie sehen können, verwenden wir hier hauptsächlich mehrere Kernsortierfunktionen von PHP

asort(), um das assoziative Array in aufsteigender Reihenfolge nach Schlüsselwert zu sortieren.

arsort() sortiert das assoziative Array in absteigender Reihenfolge nach Schlüsselwert.

natsort() implementiert „natürliche Sortierung“, d. h. die Sortiermethode für Zahlen von 1 bis 9 und die Sortiermethode für Buchstaben von a bis z, wobei die kürzeren zuerst beginnen. Der Index des Arrays wird relativ zum Zellenwert gehalten,

Hinweis: Im natürlichen Sortieralgorithmus ist die Zahl 2 kleiner als die Zahl 10. In Computer-Sortieralgorithmen ist 10 kleiner als 2, da die erste Zahl in „10“ kleiner als 2 ist.

Das obige ist der detaillierte Inhalt vonEinführung in die Methode zum Sortieren zweidimensionaler Arrays in PHP unter Beibehaltung der Schlüsselnamen (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!