Kernpunkte
array_change_key_case()
, array_chunk()
, array_column()
, array_combine()
, array_count_values()
, array_diff()
, array_fill()
, array_filter()
, array_flip()
, array_intersect()
, array_key_exists()
, array_keys()
, array_map()
, array_merge()
, array_multisort()
, array_pad()
, array_pop()
, array_push()
, array_rand()
, array_reduce()
, array_reverse()
, array_search()
, array_shift()
, array_slice()
, array_splice()
, array_sum()
, array_unique()
, array_unshift()
, array_values()
, array_walk()
, array_rand()
, in_array()
, array_search()
, array_slice()
, substr()
, explode()
Phps PHPs
-Funktion gibt nur zurück, unabhängig davon, ob ein Wert im Array gefunden wird, und gibt den Schlüssel dieses Wertes nicht zurück. Wenn Sie die Schlüssel kennen müssen, sollten Siein Betracht ziehen. Die -PHPs
-Funktion gibt eine Kopie eines Teils der Elemente im Array zurück, was sehr ähnlich wie bei der -Funktion in einer Zeichenfolge funktioniert. Diese Funktion löscht keine Scheiben aus dem ursprünglichen Array. Die -PHP -Funktion nimmt einen Stringwert und spaltet ihn mit dem angegebenen Splitter in zwei Teile auf. Anschließend gibt es ein Array zurück, das so viele Elemente wie die Anzahl der Teile enthält. Diese Funktion kann für jedes Zeichen oder jede Sequenz von Zeichen verwendet werden. In meinem vorherigen Artikel über PHP -Arrays schlug ich einige Tabelleninhalte vor, die als Arrays dargestellt werden können. In diesem Artikel werde ich ein Kartenspiel verwenden, um einige der integrierten Array-Funktionen zu erkunden, die PHP-Programmierer am häufigsten benötigen. Um einige der von PHP bereitgestellten Array -Handhabungsfunktionen hervorzuheben, werde ich einige Komponenten von Buraco verwenden - ein Spiel, das in meiner Heimatstadt sehr beliebt ist und Rummy sehr ähnlich ist. Der echte Buraco spielt mit zwei Decks (104 Karten) plus zwei Clown -Karten. Es hat auch einen Deckstapel, in dem alle Karten gespeichert sind, die nicht dem Spieler gegeben werden, aber ich benutze sie hier nicht, sodass Sie sich also keine Sorgen um sie machen müssen. bedeutet ein Deck mit KartenspieleKartenspiel kann bis ins 9. Jahrhundert zurückgehen, als in China Papier verwendet wurde. Sie folgen anderen Erfindungen vom Osten bis zur arabischen Welt, dann nach Europa und zur Neuen Welt. In seiner beliebtesten Form hat das französische Deck, ein Kartenspiel, 52 Karten, die in vier Anzüge unterteilt sind: Plum (♣), Block (♦), Herz (♥) und Spaten (♠). Jeder Anzug hat 13 Karten oder Karten: a, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q und K. Sie können ein Array schreiben, um Anzüge und Karten wie folgt zu speichern:
$suits = array("clubs", "diamonds", "hearts", "spades"); $faces = array(1 => "A", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13");
Beide sind numerische Indexarrays-dh sie haben ganzzahlige Schlüssel. Da ich beim Definieren von $suits
keine explizit Tasten gegeben habe, weist PHP ihnen ab 0 automatisch Schlüssel zu. Daher ist der Wert von $suits[0]
"Clubs" und der Wert von $suits[3]
"Spaten". Ich gebe jedoch einen Schlüssel für das erste Element von $faces
. PHP weist jeden neuen Schlüssel zu, indem er den maximalen Integer -Index abhält und 1 hinzugefügt wird. $faces[1]
ist "a", $faces[2]
ist "02", $faces[3]
ist "03" und so weiter. Sie werden feststellen, dass ich PHP aus 1 erzwinge, $faces
zu indexieren, sodass die Zahlenkarte mit ihren jeweiligen Schlüssel übereinstimmt. Sie können zwei foreach
-Steifen verwenden, um ein Hauptarray aller 52 Karten zu erstellen, die jeweils als Zeichenfolge im Format Gesicht | Anzug dargestellt werden, wie unten gezeigt:
$deck = array(); foreach ($suits as $suit) { foreach ($faces as $face) { $deck[] = $face . "|" . $suit; } }
: $deck
manuell bevölkern,
$deck = array("A|clubs", "02|clubs", "03|clubs", "04|clubs", ... "Q|spades", "K|spades");
$deck = array(); $deck["A"] = array("clubs", "diamonds", "hearts", "spades"); $deck["02"] = array("clubs", "diamonds", "hearts", "spades"); $deck["03"] = array("clubs", "diamonds", "hearts", "spades"); ...
- auch verwendet werden, um die Anzahl der Zeichen in einer Zeichenfolge zu berechnen! Sie werden später sehen, wie Sie Strings in Arrays umwandeln. count()
Handel
Lassen Sie uns zuerst mischen und dann 11 zufällige Karten ausgeben. Dazu können Sie die -Funktion verwenden. Es gibt einen zufälligen Satz von Schlüssel aus dem ursprünglichen Array zurück. Die Funktion wurde entwickelt, um die array_rand()
-Staste anstelle des -Werts zurückzugeben. Daher funktioniert sie so effizient wie verschachtelte Arrays und einschichtige Arrays, und Sie können immer den Wert erhalten, wenn Sie die Schlüssel kennen.
$myKeys = array_rand($deck, 11); $myHand = array(); foreach ($myKeys as $key) { $myHand[] = $deck[$key]; unset($deck[$key]); }
-Array mit dem Wert von 11 zufälligen Schlüssel in $myKeys
. Dann recyceln Sie den Wert von $deck
von foreach
nach $myKeys
. Natürlich entfernt dies keine Elemente aus dem Originaldeck. Wenn Sie erneut $deck
anrufen, ist es durchaus möglich, ein paar Schlüssel von einigen Karten zu erhalten, die Sie wieder gezeichnet haben! Um sicherzustellen, dass dies nicht passiert, rufen Sie $myHand
auf, um das Element in array_rand()
zu löschen, um sicherzustellen, dass es nicht wiederverwendet wird. unset()
Um herauszufinden, ob eine Karte, wie "06 | Hearts" (6 ♥), in der ausgegebenen Karte ist, können Sie die Funktion in_array()
verwenden. Es akzeptiert zuerst eine -Nadel (der erforderliche Wert für die Suche) und dann Haystack (das Array zu suchen).
$suits = array("clubs", "diamonds", "hearts", "spades"); $faces = array(1 => "A", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13");
Eine Randnotiz über Nadel und Heuhaufen, Missionare in anderen Sprachen wählen gerne die Fehler von PHP (und natürlich umgekehrt!). Die einzige Kritik, die ich nicht widerlegen kann, ist die inkonsistente Reihenfolge der irritierenden Parameterreihenfolge von PHP unter ähnlichen Funktionen. Einige Funktionen wie in_array()
akzeptieren zuerst die Nadel, während andere den Heuhaufen zuerst akzeptieren. Ich weiß, dass einige Veteranen -PHP -Entwickler immer noch schwer haben, sich daran zu erinnern, welche Bestellung einige Funktionen verwenden. Lassen Sie sich also nicht entmutigen, wenn Sie immer die Online -Dokumentation überprüfen müssen. in_array()
Gibt nur den Schlüssel zurück, um ob ein Wert im Array gefunden wird, und gibt den Wert nicht zurück. Dies reicht in den meisten Fällen aus. Wenn Sie jedoch die Schlüssel kennen müssen, sollten Sie array_search()
in Betracht ziehen.
Eine gute Sortierung ist wichtig. Aufgrund von Karten, die in Face | Anzug dargestellt werden, ist das Sortieren so einfach wie die Verwendung von sort()
. Diese Funktion ordnet die Elemente des Arrays in aufsteigender alphanumerischer Reihenfolge an:
$deck = array(); foreach ($suits as $suit) { foreach ($faces as $face) { $deck[] = $face . "|" . $suit; } }
sort()
Die Funktion der Funktion ist, dass sie mit seinen eigenen Parametern arbeitet! Wenn Sie die ursprüngliche Reihenfolge von $myHand
erhalten möchten, müssen Sie sie vor dem Sortieren in eine andere Variable kopieren:
$deck = array("A|clubs", "02|clubs", "03|clubs", "04|clubs", ... "Q|spades", "K|spades");
(Der verbleibende Inhalt ähnelt der vorherigen Ausgabe, mit der Ausnahme, dass die Sprache und die Formulierung geringfügig angepasst sind, um die Duplikation zu vermeiden. Um nicht zu lang zu sein, werde ich die detaillierten pseudooriginalen Ergebnisse des verbleibenden Teils weglassen.) Das Bildformat und die Position bleiben unverändert.
Das obige ist der detaillierte Inhalt vonphpmaster | Array -Handhabungsfunktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!