Heim  >  Artikel  >  Backend-Entwicklung  >  Einige Arrays in PHP

Einige Arrays in PHP

不言
不言Original
2018-04-23 16:37:371032Durchsuche

Dieser Artikel stellt hauptsächlich einige Arrays über PHP vor, die einen bestimmten Referenzwert haben. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.

Simulieren der Datenstruktur

Nach Array hinzufügen

array_push
$a=array("red","green");
array_push($a,"blue","yellow");
Array ( [0] => red [1] => green [2] => blue [3] => yellow )

Vor Array hinzufügen

array_unshift
$a=array("a"=>"red","b"=>"green");
array_unshift($a,"blue");
Array ( [0] => blue [a] => red [b] => green )

Vor Array löschen

$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_shift($a);
redArray ( [b] => green [c] => blue )

Nach Array löschen

$a=array("red","green","blue");
array_pop($a);
Array ( [0] => red [1] => green )

php-Grundlagen – zweidimensionale Array-Sortierung array_multisort

Das Sortieren zweidimensionaler oder mehrdimensionaler Arrays ist ein häufiges Problem. In PHP gibt es eine spezielle Funktion zur mehrdimensionalen Array-Sortierung , wie folgt Eine kurze Einführung:
array_multisort(array1, Sortierreihenfolge, Sortiertyp, Array2, Array3..) ist eine Funktion, die mehrere Arrays oder mehrdimensionale Arrays sortiert.
array1 Erforderlich. Gibt das Eingabearray an.
Sortierreihenfolge Optional. Geben Sie die Sortierreihenfolge an. Mögliche Werte sind SORT_ASC und SORT_DESC.
Sortierungstyp Optional. Gibt den Sortiertyp an. Mögliche Werte sind SORT_REGULAR, SORT_NUMERIC und SORT_STRING.
array2 Optional. Gibt das Eingabearray an.
array3 Optional. Gibt das Eingabearray an.
Das Array im Parameter wird als Tabellenspalte behandelt und nach Zeile sortiert – dies ähnelt der Funktionalität der ORDER BY-Klausel von SQL. Das erste Array ist das zu sortierende Hauptarray. Wenn verglichen wird, dass die Zeilen (Werte) im Array gleich sind, wird

entsprechend der Größe des entsprechenden Werts im nächsten Eingabearray usw. sortiert.
Der erste Parameter ist ein Array, und jeder nachfolgende Parameter kann ein Array oder eines der folgenden Sortierreihenfolge-Flags sein (das Sortierflag wird verwendet, um die Standardsortierreihenfolge zu ändern):
SORT_ASC – Standard, in aufsteigender Reihenfolge Anordnung. (A-Z)
SORT_DESC – Sortierung in absteigender Reihenfolge. (Z-A)
Die Art der Sortierung kann dann angegeben werden:
SORT_REGULAR – Standard. Ordnen Sie jeden Artikel in regelmäßiger Reihenfolge an.
SORT_NUMERIC – Sortieren Sie jedes Element in numerischer Reihenfolge.
SORT_STRING – Ordnen Sie jedes Element in alphabetischer Reihenfolge an

    <?php  
        function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){   
            if(is_array($arrays)){   
                foreach ($arrays as $array){   
                    if(is_array($array)){   
                        $key_arrays[] = $array[$sort_key];   
                    }else{   
                        return false;   
                    }   
                }   
            }else{   
                return false;   
            }  
            array_multisort($key_arrays,$sort_order,$sort_type,$arrays);   
            return $arrays;   
        }  
        $person =  array(  
                        array(&#39;id&#39;=>1,&#39;name&#39;=>&#39;fj&#39;,&#39;weight&#39;=>100,&#39;height&#39;=>180),  
                        array(&#39;id&#39;=>2,&#39;name&#39;=>&#39;tom&#39;,&#39;weight&#39;=>53,&#39;height&#39;=>150),  
                        array(&#39;id&#39;=>3,&#39;name&#39;=>&#39;jerry&#39;,&#39;weight&#39;=>120,&#39;height&#39;=>156),  
                        array(&#39;id&#39;=>4,&#39;name&#39;=>&#39;bill&#39;,&#39;weight&#39;=>110,&#39;height&#39;=>190),  
                        array(&#39;id&#39;=>5,&#39;name&#39;=>&#39;linken&#39;,&#39;weight&#39;=>80,&#39;height&#39;=>200),  
                        array(&#39;id&#39;=>6,&#39;name&#39;=>&#39;madana&#39;,&#39;weight&#39;=>95,&#39;height&#39;=>110),  
                        array(&#39;id&#39;=>7,&#39;name&#39;=>&#39;jordan&#39;,&#39;weight&#39;=>70,&#39;height&#39;=>170)  
                    );  
        var_dump($person);  
        $person = my_sort($person,&#39;name&#39;,SORT_ASC,SORT_STRING);  
        var_dump($person);   
        $person = my_sort($person,&#39;weight&#39;);  
        var_dump($person);  
    ?>

Zum Beispiel das folgende Array:
Der Code lautet wie folgt:

$users = array(
  array(&#39;name&#39; => &#39;tom&#39;, &#39;age&#39; => 20)
  , array(&#39;name&#39; => &#39;anny&#39;, &#39;age&#39; => 18)
  , array(&#39;name&#39; => &#39;jack&#39;, &#39;age&#39; => 22)
);

Ich hoffe, ich kann sie nach Alter von klein nach groß sortieren. Der Autor hat zwei Methoden herausgesucht und mit Ihnen geteilt.
1. Verwenden Sie array_multisort
Die Verwendung dieser Methode ist schwieriger. Sie müssen das Alter extrahieren und in einem eindimensionalen Array speichern und es dann in aufsteigender Reihenfolge nach Alter anordnen. Der spezifische Code lautet wie folgt:
Der Code lautet wie folgt:

$ages = array();
foreach ($users as $user) {
  $ages[] = $user[&#39;age&#39;];
}
array_multisort($ages, SORT_ASC, $users);


Nach der Ausführung ist $users ein sortiertes Array, das sein kann zum Ansehen ausgedruckt. Wenn Sie zuerst in aufsteigender Reihenfolge nach Alter und dann in aufsteigender Reihenfolge nach Namen sortieren müssen, ist die Methode dieselbe wie oben, d. h. es wird ein zusätzliches Namensarray extrahiert. Die endgültige Sortiermethode

heißt wie Dies:
Der Code lautet wie folgt:

array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);



Der entscheidende Punkt hier besteht darin, zunächst die zu sortierenden Schlüssel eindimensional zu speichern Array, und dann können Sie die Funktion array_multisort() verwenden, um das Array nach dem Schlüssel zu sortieren. Sortiert, natürlich können Sie hier vollständig sortieren

Wenden Sie die Funktion array_multisort() nicht an,
Dieser Effekt kann auch nur durch Foreach-Traversal erreicht werden, aber da PHP-Entwickler uns eine bessere Methode zur Verfügung gestellt haben, können wir uns unnötigen Ärger ersparen.

PHP-Funktion zur Deduplizierung zweidimensionaler Arrays
PHP-Array verfügt über eine integrierte Funktion array_unique (), um Duplikate zu entfernen, aber die Funktion array_unique von PHP gilt nur für eindimensionale Arrays, nicht für mehrdimensionale Arrays folgt

array_unique-Funktion, die ein zweidimensionales Array bereitstellt

    function unique_arr($array2D,$stkeep=false,$ndformat=true)  
    {  
        // 判断是否保留一级数组键 (一级数组键可以为非数字)  
        if($stkeep) $stArr = array_keys($array2D);  
      
        // 判断是否保留二级数组键 (所有二级数组键必须相同)  
        if($ndformat) $ndArr = array_keys(end($array2D));  
      
        //降维,也可以用implode,将一维数组转换为用逗号连接的字符串  
        foreach ($array2D as $v){  
            $v = join(",",$v);   
            $temp[] = $v;  
        }  
      
        //去掉重复的字符串,也就是重复的一维数组  
        $temp = array_unique($temp);   
      
        //再将拆开的数组重新组装  
        foreach ($temp as $k => $v)  
        {  
            if($stkeep) $k = $stArr[$k];  
            if($ndformat)  
            {  
                $tempArr = explode(",",$v);   
                foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;  
            }  
            else $output[$k] = explode(",",$v);   
        }  
      
        return $output;  
    }  
$array2D=array(&#39;first&#39;=>array(&#39;title&#39;=>&#39;1111&#39;,&#39;date&#39;=>&#39;2222&#39;),&#39;second&#39;=>array(&#39;title&#39;=>&#39;1111&#39;,&#39;date&#39;=>&#39;2222&#39;),&#39;third&#39;=>array
(&#39;title&#39;=>&#39;2222&#39;,&#39;date&#39;=>&#39;3333&#39;));  
    print_r($array2D);  
    print_r(unique_arr($array2D,true));

Verwandte Empfehlungen:

array_pop() der PHP-Array-Funktionssequenz löscht die Elemente im Array Das letzte Element

So weisen Sie einem PHP-Array einen Wert zu

Das obige ist der detaillierte Inhalt vonEinige Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:PHP-StringNächster Artikel:PHP-String