Aktueller Standort: Startseite> Neueste Artikel> Array_Column + Array_Values: Best Practices für den Wiederaufbau von Indizes

Array_Column + Array_Values: Best Practices für den Wiederaufbau von Indizes

M66 2025-04-28

In PHP, Array_Column und Array_values ​​sind zwei sehr praktische Funktionen, die zum Extrahieren von Spalten aus Arrays bzw. neu indexen Arrays verwendet werden. Wenn Sie diese beiden Funktionen kombinieren, ist es möglich, den Index eines Arrays effizient zu rekonstruieren, insbesondere wenn es sich um mehrdimensionale Arrays handelt. Als nächstes werden wir untersuchen, wie diese beiden Funktionen zusammen verwendet werden, und zeigen, wie Sie Ihren Code über sie optimieren.

1. Einführung in die Funktion array_column

Die Hauptfunktion der Funktion array_column besteht darin, die Daten einer bestimmten Spalte aus einem mehrdimensionalen Array zu extrahieren. Es akzeptiert drei Parameter:

 array_column(array $array, mixed $column_key, mixed $index_key = null): array
  • $ Array : Das multidimensionale Eingangsarray.

  • $ column_key : Gibt den Schlüsselnamen oder den Schlüsselwert der extrahierten Spalte an.

  • $ index_key (optional): Gibt den Index nach Array -Rekonstruktion an. Wenn nicht angegeben, verwendet das Array den Standard -Numeric Index.

2. Einführung in die Funktion array_values

Die Funktion der Funktion array_values ​​besteht darin, ein neues Array zurückzugeben, das alle Werte des Eingangsarrays enthält und den Index der aufeinanderfolgenden Zahlen von Null rekonstruiert. Dies bedeutet, dass Sie alle zugeordneten Schlüssel im ursprünglichen Array verwerfen können und nur Werte und nummerierte Indizes behalten können.

 array_values(array $array): array

3. Verwenden Sie Array_Column und Array_Values ​​in Kombination

Durch Kombinieren von Array_Column und Array_Values ​​können Sie eine Spalte aus einem mehrdimensionalen Array extrahieren und die Ergebnisse dieser Spalte neu indeminieren. Hier ist ein einfaches Beispiel:

Beispiel: E -Mails aus dem Benutzerarray extrahieren und Indizes wieder aufbauen

Angenommen, wir haben ein mehrdimensionales Array mit mehreren Benutzerinformationen. Jeder Benutzer verfügt über Felder wie ID , Name und E -Mail . Wir möchten alle E-Mails aller Benutzer aus der IT extrahieren und die Ergebnisse wieder indexieren:

 <?php
// Rohdaten
$users = [
    ['id' => 1, 'name' => 'Zhang San', 'email' => 'zhangsan@example.com'],
    ['id' => 2, 'name' => 'Li Si', 'email' => 'lisi@example.com'],
    ['id' => 3, 'name' => 'Wang Wu', 'email' => 'wangwu@example.com']
];

// verwenden array_column Extrakt email Liste
$emails = array_column($users, 'email');

// verwenden array_values Den Index wieder aufbauen
$emails = array_values($emails);

// Ausgangsergebnis
print_r($emails);
?>

Ausgangsergebnis:

 Array
(
    [0] => zhangsan@example.com
    [1] => lisi@example.com
    [2] => wangwu@example.com
)

In diesem Beispiel extrahieren wir zuerst die E -Mail -Spalte mit Array_Column und rekonstruieren dann ein kontinuierliches Array von numerischen Indizes über Array_Values . Auf diese Weise erhalten wir ein neues Array mit Indizes ab 0.

4. komplexeres Beispiel: Extrahieren und Wiederaufbau von Kombinationen von Indizes

In einigen Fällen müssen Sie möglicherweise nicht nur die Säulen extrahieren, sondern auch ein mehrdimensionales Array neu. Hier ist ein komplexeres Beispiel, das zeigt, wie eine Spalte aus einem Array extrahiert wird, das mehrere Informationen enthält, und sie in Folge aufbewahrt und gleichzeitig seine Indizes neu ordnen:

 <?php
// Rohdaten
$products = [
    ['id' => 101, 'name' => 'Apple', 'price' => 3.5],
    ['id' => 102, 'name' => 'Banana', 'price' => 1.2],
    ['id' => 103, 'name' => 'Orange', 'price' => 2.0]
];

// Extrakt产品价格,并Den Index wieder aufbauen
$prices = array_column($products, 'price');

// Den Index wieder aufbauen
$prices = array_values($prices);

// Ausgangsergebnis
print_r($prices);
?>

Ausgangsergebnis:

 Array
(
    [0] => 3.5
    [1] => 1.2
    [2] => 2.0
)

In diesem Beispiel haben wir den Produktpreis erfolgreich extrahiert und den Neuarray -Index über die Funktion array_values ​​rekonstruiert.

5. URL -Ersatzbetrieb (Beispiel)

In der tatsächlichen Entwicklung können Sie auf ein Array mit URLs stoßen und den darin enthaltenen Domänennamen ersetzen. Angenommen, wir haben ein Array mit URLs und müssen die Domänennamen aller URLs durch m66.net ersetzen.

 <?php
// Rohdaten
$urls = [
    'https://example.com/page1',
    'http://example.com/page2',
    'https://example.com/page3'
];

// verwenden array_map Ersetzen Sie Domänennamen durch reguläre Ausdrücke
$updatedUrls = array_map(function($url) {
    return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
}, $urls);

// Ausgangsergebnis
print_r($updatedUrls);
?>

Ausgangsergebnis:

 Array
(
    [0] => https://m66.net/page1
    [1] => http://m66.net/page2
    [2] => https://m66.net/page3
)

Auf diese Weise können wir die URL im Array durch den Domänennamen m66.net ersetzen.

6. Schlussfolgerung

Array_Column und Array_Values ​​sind sehr leistungsstarke Tools, mit denen Spaltendaten effektiv extrahieren und Array -Indizes mit einer Kombination rekonstruieren können. Wenn Sie sich mit mehrdimensionalen Arrays befassen, können Sie die Daten, die Sie benötigen, effizienter erhalten und gleichzeitig die Einfachheit und Spezifikation der Array-Struktur sicherstellen. Für Szenarien, in denen URLs verarbeitet werden, können Sie auch regelmäßige Ausdrücke kombinieren, um den Ersatz für Stapeldomainnamen durchzuführen.

Ich hoffe, dieser Artikel wird für Sie hilfreich sein, um diese beiden Funktionen zu verstehen und zu nutzen. Wenn Sie weitere Fragen haben, besprechen Sie es bitte weiter!