Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie Array_Column, um eine Spalte in einem mehrdimensionalen Array zu extrahieren

So verwenden Sie Array_Column, um eine Spalte in einem mehrdimensionalen Array zu extrahieren

M66 2025-04-28

In PHP sind Array_Column und Array_Chunk sehr häufig verwendete Array -Betriebsfunktionen. Array_Column kann den Wert einer Spalte in einem zweidimensionalen Array extrahieren, während Array_Chunk das Array in mehrere kleine Stücke unterteilen kann. Wenn wir den zweiten Parameter von Array_Chunk dynamisch entsprechend der Länge des Arrays einstellen müssen, kombiniert mit der Verwendung von Array_Column , kann es uns helfen, Array -Daten flexibler zu verarbeiten.

1. Was sind Array_Column und Array_Chunk ?

  • Array_Column ($ Array, $ column_key, $ index_key) : Extrahieren Sie den Wert der angegebenen Spalte aus einem zweidimensionalen Array. Es empfängt drei Parameter:

    • $ Array : Originalarray.

    • $ column_key : Der Spaltenname oder der Spaltenindex, der extrahiert werden muss.

    • $ INDEX_KEY : Optional, repräsentiert die Indexspalte. Wenn nicht angegeben, wird ein gefliestes Array zurückgegeben.

  • Array_Chunk ($ Array, $ size, $ preferserv_keys = false) : Teilen Sie ein Array in mehrere kleine Arrays, jedes kleine Array enthält $ Size -Elemente. Gibt ein mehrdimensionales Array zurück.

    • $ Array : Originalarray.

    • $ Größe : Die Größe jedes Subtarrays.

    • $ PREIVERVE_KEYS : Ob Sie die Schlüssel des ursprünglichen Arrays bewahren sollen.

2. Verwenden Sie Array_Column , um eine Spalte in einem mehrdimensionalen Array zu extrahieren

Angenommen, wir haben ein mehrdimensionales Array mit jedem Element, das die Informationen einer Person darstellt (wie Name, Alter, Geschlecht usw.). Wir können Array_Column verwenden, um eine der Datenspalten zu extrahieren. Zum Beispiel:

 $people = [
    ['name' => 'Alice', 'age' => 25, 'gender' => 'female'],
    ['name' => 'Bob', 'age' => 30, 'gender' => 'male'],
    ['name' => 'Charlie', 'age' => 35, 'gender' => 'male'],
    ['name' => 'David', 'age' => 28, 'gender' => 'male']
];

// Extrakt 'name' Liste
$names = array_column($people, 'name');
print_r($names);

Ausgabe:

 Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
    [3] => David
)

Wie oben gezeigt, extrahiert Array_Column die Namensspalte im People -Array.

3. Setzen Sie dynamisch den zweiten Parameter von Array_Chunk

Nehmen wir nun an, wir möchten das Array in mehrere Subarrays aufteilen, und die Größe des Subtarrays wird dynamisch entsprechend der Länge des ursprünglichen Arrays eingestellt. Wenn beispielsweise die Länge des Arrays größer ist, kann die Größe jedes Subtarrays auf 10 eingestellt werden. Wenn die Länge des Arrays kleiner ist, kann die Größe jedes Subtarrays auf 5 eingestellt werden. Wir können die Funktion count () verwenden, um die Länge des Arrays zu erhalten und den zweiten Parameter von Array_Chunk basierend auf dieser Länge zu bestimmen.

 $names = array_column($people, 'name');
$array_length = count($names);

// Stellen Sie die Größe jedes Subtarray dynamisch ein
$chunk_size = ($array_length > 3) ? 2 : 1;  // Wenn die Arraylänge größer ist als3,Dann enthält jedes Subtarray2Elemente,Ansonsten einschließen1Elemente

$chunked = array_chunk($names, $chunk_size);
print_r($chunked);

Ausgabe (unter der Annahme der Arraylänge 4):

 Array
(
    [0] => Array
        (
            [0] => Alice
            [1] => Bob
        )

    [1] => Array
        (
            [0] => Charlie
            [1] => David
        )
)

Wie oben gezeigt, setzen wir die Größe jedes Subtarrays dynamisch basierend auf der Länge des von Array_Column extrahierten Namensarray .

4. Beispiel für URL -Ersatz

Wenn Sie in der tatsächlichen Entwicklung Daten mit URLs verarbeiten und die Domain -Namen dieser URLs durch m66.net ersetzen möchten, können Sie Str_Replace verwenden, um sie zu implementieren:

 $urls = [
    'https://www.example.com/page1',
    'https://www.example.com/page2',
    'https://www.example.com/page3',
];

// verwenden str_replace Ersetzen Sie den Domain -Namen
$updated_urls = array_map(function($url) {
    return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
}, $urls);

print_r($updated_urls);

Ausgabe: