In PHP sind Array_Chunk und Array_Column zwei sehr nützliche Funktionen, die uns helfen können, flexible Vorgänge auf Arrays auszuführen. Durch die Verwendung dieser beiden Funktionen können wir den Betrieb zweidimensionaler Arrays nach Spalten problemlos implementieren. In diesem Artikel wird detailliert vorgestellt, wie Sie Array_Chunk und Array_Column kombinieren, um dieses Ziel zu erreichen.
Array_Column : Diese Funktion kann den Wert einer Spalte aus einem mehrdimensionalen Array extrahieren. Seine häufige Verwendung besteht darin, alle Werte einer bestimmten Spalte ohne manuelles Schleifen zu erhalten.
array_column(array $array, mixed $column_key, mixed $index_key = null)
Array_Chunk : Diese Funktion unterteilt ein Array in mehrere kleine Arrays, wobei jedes kleine Array bis zu einer bestimmten Anzahl von Elementen enthält. Dies ermöglicht eine effiziente Aufteilung großer Arrays.
array_chunk(array $array, int $size, bool $preserve_keys = false)
Angenommen, wir haben ein zweidimensionales Array, in dem jedes Element Daten für mehrere Spalten enthält. Wenn wir eine Spalte extrahieren und die Daten der Spalte nach einer bestimmten Größe in mehrere kleine Arrays aufteilen möchten, können wir eine Kombination aus Array_Column und Array_Chunk verwenden.
Angenommen, wir haben das folgende zweidimensionale Array:
$data = [
['id' => 1, 'name' => 'Tom', 'age' => 28],
['id' => 2, 'name' => 'Jerry', 'age' => 30],
['id' => 3, 'name' => 'Mickey', 'age' => 25],
['id' => 4, 'name' => 'Donald', 'age' => 35],
['id' => 5, 'name' => 'Goofy', 'age' => 40],
['id' => 6, 'name' => 'Pluto', 'age' => 22]
];
Wenn wir nur die Spalte des Namens extrahieren und alle 2 Elemente teilen möchten, können wir den folgenden Code verwenden:
// Extrakt 'name' Liste
$names = array_column($data, 'name');
// Drücken Sie jeweils 2 Splitelemente
$chunkedNames = array_chunk($names, 2);
// Ausgangsspaltarray
print_r($chunkedNames);
Ausgangsergebnis:
Array
(
[0] => Array
(
[0] => Tom
[1] => Jerry
)
[1] => Array
(
[0] => Mickey
[1] => Donald
)
[2] => Array
(
[0] => Goofy
[1] => Pluto
)
)
In praktischen Anwendungen müssen wir häufig komplexere Arrays teilen. Nehmen wir an, wir haben eine Liste von URL -Adressen und möchten den Hauptdomain -Namen der einzelnen URL extrahieren und dann durch alle 3 Domain -Namen teilen. Angenommen, die Originaldaten sind wie folgt:
$data = [
['url' => 'http://www.m66.net/page1', 'other' => 'data1'],
['url' => 'http://www.m66.net/page2', 'other' => 'data2'],
['url' => 'http://www.m66.net/page3', 'other' => 'data3'],
['url' => 'http://www.m66.net/page4', 'other' => 'data4'],
['url' => 'http://www.m66.net/page5', 'other' => 'data5'],
['url' => 'http://www.m66.net/page6', 'other' => 'data6']
];
Wir verwenden zuerst Array_Column , um alle URLs zu extrahieren, und dann verwenden wir dann die Parse_url -Funktion, um den Hauptdomain -Namen zu erhalten, und verwenden schließlich Array_Chunk , um den Domänennamen in drei Gruppen aufzuteilen.
// Extrakt 'url' Liste
$urls = array_column($data, 'url');
// Holen Sie sich jeden URL Der Hauptdomainnamenteil
$domains = array_map(function($url) {
return parse_url($url, PHP_URL_HOST);
}, $urls);
// Drücken Sie jeweils 3 Domainname geteilt
$chunkedDomains = array_chunk($domains, 3);
// Ausgabeteilungsdomänenname Array
print_r($chunkedDomains);
Ausgangsergebnis: