Heim  >  Artikel  >  Backend-Entwicklung  >  Kann PHP Elemente mehrdimensionaler Arrays extrahieren?

Kann PHP Elemente mehrdimensionaler Arrays extrahieren?

PHPz
PHPzOriginal
2023-04-26 14:23:40468Durchsuche

PHP ist eine weit verbreitete serverseitige Programmiersprache, die flexibel und einfach zu verwenden ist. Bei der PHP-Programmierung müssen wir häufig mit mehrdimensionalen Arrays arbeiten. Wenn beispielsweise ein Element im Array mehr als einen Wert hat, müssen wir seinen Wert extrahieren und verwenden. Welche Methoden gibt es also, um mehrdimensionale Arrays in PHP zu extrahieren?

  1. Verwenden Sie eine Schleife zum Extrahieren

Die Verwendung einer Schleife zum Durchlaufen mehrdimensionaler Arrays ist eine gängige Methode. Sie kann alle Elemente durchlaufen, die Position der zu extrahierenden Elemente bestimmen und dann ihre Werte speichern in einem neuen Array oder einer neuen Variable. Wir haben zum Beispiel ein zweidimensionales Array wie folgt:

$students = array(
    array('name' => 'Tom', 'age' => 20),
    array('name' => 'Lucy', 'age' => 22),
    array('name' => 'Sam', 'age' => 21)
);

Wenn Sie das Alter des Schülers extrahieren möchten, dessen $name „Lucy“ ist, können Sie den folgenden Code verwenden:

foreach($students as $student){
   if($student['name'] == 'Lucy'){
      $age = $student['age'];
      break;
   }
}

Im obigen Code by Durchlaufen Sie das Array $students und stellen Sie fest, ob $name „Lucy“ ist. Wenn ja, speichern Sie das $age des Schülers in der Variablen $age.

  1. Verwenden Sie die Funktion array_column, um assoziative Arrays zu extrahieren. Die Funktion array_column() ist sehr praktisch, wenn Sie zweidimensionale assoziative Arrays extrahieren. Sie kann das Array von Werten, die einem bestimmten Schlüsselnamen entsprechen, direkt extrahieren folgt:
  2. array_column($input, 'column_key');
Der $input-Parameter ist ein zweidimensionales Array, 'column_key' stellt den zu extrahierenden Schlüsselnamen dar. Um die Studentennamen im Array $students oben zu extrahieren, können Sie den folgenden Code verwenden:

$names = array_column($students, 'name');
Im obigen Code extrahiert die Funktion array_column() die Studentennamen aus dem Array $students und speichert sie im Array $names.

Verwenden Sie die Funktion „array_map“, um ein indiziertes Array zu extrahieren neues Array. Zum Beispiel haben wir ein zweidimensionales Array $numbers, das mehrere Indexarrays enthält:

$numbers = array(
    array(1, 3, 5),
    array(2, 4, 6),
    array(3, 5, 7)
);
    Wenn Sie das zweite Element jedes Arrays extrahieren möchten, können Sie den folgenden Code verwenden:
  1. $seconds = array_map(function($arr) {
        return $arr[1];
    }, $numbers);
  2. Im obigen Code ein anonymer Wenn die Funktion zuerst definiert wird, empfängt diese Funktion einen Array-Parameter und gibt das zweite Element des Arrays zurück. Anschließend wird über die Funktion array_map die anonyme Funktion auf jedes Element des Arrays $numbers angewendet und das zweite Element jedes Arrays extrahiert und im neuen Array $seconds gespeichert.

Verwenden Sie die Funktion array_walk_recursive, um ein mehrdimensionales assoziatives Array zu extrahieren.

Wenn das Array komplexer ist, weisen seine Elemente mehrere Schlüssel-Wert-Paare auf, und wenn die Schlüsselnamen nicht eindeutig sind, führt die Verwendung der Funktion array_map nur zu einer Rückgabe das erste Element im Array. An diesem Punkt können wir dieses Problem mithilfe der Funktion array_walk_recursive lösen, die eine vom Benutzer bereitgestellte Rückruffunktion auf jedes Element im mehrdimensionalen Array anwendet und es basierend auf dem Schlüsselnamen extrahiert. Beispiel:

$data = array(
    'a' => array(
        'b' => array(
            'c' => 10,
            'd' => 20
         ),
    ),
    'e' => array(
        'f' => 30
    )
);

$callback = function($value, $key) use(&$result){
    if($key == 'd'){
        $result[] = $value;
    }
};

array_walk_recursive($data, $callback);
    Im obigen Code kann die Funktion array_walk_recursive() beim Extrahieren assoziativer Arrays mehrstufige mehrdimensionale Arrays verarbeiten. Diese Funktion empfängt zwei Parameter: das zu durchlaufende Array $data und die Rückruffunktion $callback. Die Funktion $callback extrahiert den Wert, der dem Schlüssel „d“ entspricht, und speichert ihn im neuen Array $result.
  1. Zusammenfassend lässt sich sagen, dass PHP eine Vielzahl flexibler Optionen zum Extrahieren mehrdimensionaler Arrays bietet. Wir können Schleifen, die Funktion array_column(), die Funktion array_map() oder die Funktion array_walk_recursive() verwenden, um Werte aus mehrdimensionalen Arrays entsprechend den tatsächlichen Anforderungen zu extrahieren.

Das obige ist der detaillierte Inhalt vonKann PHP Elemente mehrdimensionaler Arrays extrahieren?. 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