Heim >Backend-Entwicklung >PHP-Problem >PHP entfernt Werte aus einem zweidimensionalen Array

PHP entfernt Werte aus einem zweidimensionalen Array

WBOY
WBOYOriginal
2023-05-11 10:14:36616Durchsuche

In PHP sind Arrays ein häufig verwendeter Datentyp, und zweidimensionale Arrays sind häufiger anzutreffen. Ein zweidimensionales Array kann als Array verstanden werden, das andere Arrays enthält, dh jedes Element in einem Array ist ein Array. In manchen Fällen müssen wir ein Element aus einem zweidimensionalen Array löschen oder bestimmte Werte herausfiltern. In diesem Artikel wird erläutert, wie Werte aus einem zweidimensionalen Array entfernt werden.

Schauen Sie sich zunächst ein einfaches zweidimensionales Array an, vorausgesetzt, es handelt sich um eine Liste von Schülern, die den Namen und das Alter jedes Schülers enthält:

$students = array(
    array("name" => "张三", "age" => 20),
    array("name" => "李四", "age" => 21),
    array("name" => "王五", "age" => 22),
    array("name" => "赵六", "age" => 23)
);

Jetzt müssen wir den Schüler, der 22 Jahre alt ist, aus der Liste entfernen. Dies kann durch eine Schleife durch das Array erreicht werden:

foreach ($students as $key => $student) {
    if ($student["age"] == 22) {
        unset($students[$key]);
    }
}

Die foreach-Schleife wird hier verwendet, um die Informationen jedes Schülers zu durchlaufen. Wenn das Alter des Schülers 22 Jahre beträgt, verwenden Sie unset Die Funktion entfernt den Schüler aus dem Array. foreach循环来遍历每个学生的信息,如果学生的年龄等于22岁,就使用unset函数将该学生从数组中删除。

在这个例子中,我们使用了$key变量来记录当前学生的索引,然后使用unset函数将该索引对应的学生删除。需要注意的是,在删除数组元素时,数组的索引值并不会按照顺序重新排序,因此最好使用foreach循环来遍历数组。

除了使用unset函数,还可以使用PHP内置的array_filter函数来过滤数组中的值,例如,我们可以使用下面的代码过滤掉所有年龄为22岁的学生:

$students = array_filter($students, function($student) {
    return $student["age"] != 22;
});

这里使用了一个匿名函数作为array_filter函数的第二个参数,该函数接收一个学生数据,并根据学生的年龄进行过滤。如果学生的年龄不等于22岁,就返回true,否则返回falsearray_filter函数会将返回值为true的元素保留下来,返回值为false的元素被过滤掉。

除了使用array_filter函数,还可以使用array_reduce函数来实现过滤功能。array_reduce函数接收三个参数:要处理的数组、一个回调函数和初始值。回调函数接收两个参数:每个数组元素和上一次回调的结果,然后返回下一次回调的结果。例如,下面的代码使用array_reduce函数过滤年龄为22岁的学生:

$students = array_reduce($students, function($result, $student) {
    if ($student["age"] != 22) {
        $result[] = $student;
    }
    return $result;
}, array());

这里使用了一个匿名函数作为回调函数,该函数首先判断学生的年龄是否等于22岁,如果不等于,则将该学生添加到结果数组中,最后返回结果数组。array_reduce

In diesem Beispiel verwenden wir die Variable $key, um den Index des aktuellen Schülers aufzuzeichnen, und verwenden dann die Funktion unset, um den dem Index entsprechenden Schüler zu löschen. Es ist zu beachten, dass beim Löschen von Array-Elementen die Indexwerte des Arrays nicht in der richtigen Reihenfolge angeordnet werden. Daher ist es am besten, eine foreach-Schleife zu verwenden, um das Array zu durchlaufen.

Zusätzlich zur Verwendung der Funktion unset können Sie beispielsweise auch die integrierte Funktion array_filter von PHP verwenden, um die Werte im Array zu filtern Verwenden Sie den folgenden Code, um alle Schüler herauszufiltern, deren Alter 22 Jahre beträgt: 🎜rrreee🎜 Eine anonyme Funktion wird hier als zweiter Parameter der Funktion array_filter verwendet. Die Funktion empfängt Schülerdaten und filtert es richtet sich nach dem Alter des Schülers. Wenn das Alter des Schülers nicht 22 Jahre beträgt, wird true zurückgegeben, andernfalls false und die Funktion array_filter gibt den Wert zurück als true-Elemente bleiben erhalten und Elemente mit einem Rückgabewert von <code>false werden herausgefiltert. 🎜🎜Zusätzlich zur Verwendung der Funktion array_filter können Sie auch die Funktion array_reduce verwenden, um die Filterfunktion zu implementieren. Die Funktion array_reduce erhält drei Parameter: das zu verarbeitende Array, eine Callback-Funktion und den Anfangswert. Die Rückruffunktion empfängt zwei Parameter: jedes Array-Element und das Ergebnis des vorherigen Rückrufs und gibt dann das Ergebnis des nächsten Rückrufs zurück. Der folgende Code verwendet beispielsweise die Funktion array_reduce, um Schüler zu filtern, deren Alter 22 Jahre beträgt: 🎜rrreee🎜 Hier wird eine anonyme Funktion als Rückruffunktion verwendet. Die Funktion ermittelt zunächst, ob der Schüler alt ist gleich 22 Jahre alt. Wenn nicht, wird der Schüler zum Ergebnisarray hinzugefügt und schließlich wird das Ergebnisarray zurückgegeben. Die Funktion array_reduce übergibt die Daten jedes Schülers zur Verarbeitung an die Rückruffunktion und gibt schließlich das gefilterte Ergebnisarray zurück. 🎜🎜Kurz gesagt, PHP bietet viele Methoden zum Verarbeiten von Arrays, einschließlich des Entfernens von Elementen aus dem Array oder des Herausfilterns bestimmter Werte. Zusätzlich zu den oben genannten Methoden gibt es viele weitere integrierte PHP-Funktionen, die verwendet werden können. Für unterschiedliche Szenarien und Bedürfnisse können je nach tatsächlicher Situation unterschiedliche Methoden ausgewählt werden. 🎜

Das obige ist der detaillierte Inhalt vonPHP entfernt Werte aus einem zweidimensionalen Array. 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