Heim >Backend-Entwicklung >PHP-Problem >So löschen Sie ein Array basierend auf dem Schlüssel in PHP

So löschen Sie ein Array basierend auf dem Schlüssel in PHP

PHPz
PHPzOriginal
2023-04-23 10:09:34661Durchsuche

In PHP müssen wir häufig Arrays hinzufügen, löschen, ändern, überprüfen und andere Vorgänge durchführen. Unter diesen ist der Löschvorgang eine häufige Art von Array-Vorgang, da wir in der tatsächlichen Entwicklung auf viele Situationen stoßen, in denen bestimmte Elemente gelöscht werden müssen. In diesem Artikel wird hauptsächlich das Löschen von Elementen in einem Array basierend auf dem Schlüssel vorgestellt.

1. Unset-Funktion

PHP stellt eine Funktion unset() bereit, mit der bestimmte Elemente im Array gelöscht werden können. Die Syntax lautet wie folgt: unset(),该函数可以用来删除数组中指定的元素。它的语法如下:

unset($array[key]);

其中,$array 是要删除元素的数组,key 是要删除的元素的键名。

示例代码如下:

// 创建一个关联数组
$arr = array(
    'name' => 'Tom',
    'age' => 18,
    'gender' => 'male'
);

// 删除元素 age
unset($arr['age']);

// 输出结果
print_r($arr);

输出结果如下:

Array
(
    [name] => Tom
    [gender] => male
)

从输出结果可以看到,元素 age 已经被成功删除了。

2. array_splice 函数

除了使用 unset() 函数以外,还可以使用 PHP 中的另一个内置函数 array_splice() 来删除数组中的元素。该函数可以删除数组中的一个或多个连续的元素,并返回被删除的元素数组。它的语法如下:

array_splice($array, $offset, $length);

其中,$array 是要删除元素的数组,$offset 是要删除元素的起始位置,$length 是要删除的元素个数。

示例代码如下:

// 创建一个索引数组
$arr = array(0, 1, 2, 3, 4, 5);

// 删除索引为 2、3、4 的连续 3 个元素
$deleted = array_splice($arr, 2, 3);

// 输出结果
print_r($arr);
print_r($deleted);

输出结果如下:

Array
(
    [0] => 0
    [1] => 1
    [5] => 5
)
Array
(
    [0] => 2
    [1] => 3
    [2] => 4
)

从输出结果可以看到,元素 2、3、4 已经被成功删除了,并存储在 $deleted 变量中。

需要注意的是,array_splice() 函数会改变原数组的结构,因此需要谨慎使用。

3. array_diff_key 函数

另外一个常见的做法是使用 array_diff_key() 函数,该函数可以将两个数组的键名进行比较,返回键名差集。通过这个函数,我们可以轻松删除一个或多个键名对应的元素。

示例代码如下:

// 创建一个关联数组
$arr = array(
    'name' => 'Tom',
    'age' => 18,
    'gender' => 'male'
);

// 要删除的键名数组
$keys = array('age', 'gender');

// 使用 array_diff_key 函数删除键名对应的元素
$result = array_diff_key($arr, array_flip($keys));

// 输出结果
print_r($result);

输出结果如下:

Array
(
    [name] => Tom
)

从输出结果可以看到,元素 agegender 已经被成功删除了。

需要注意的是,array_diff_key() 函数返回的是差集数组,原数组并不会被改变,因此需要将返回结果保存到新的数组中。

4. Conclusion

在 PHP 中,我们可以使用多种方法来删除数组中的元素,其中 unset() 函数和 array_splice() 函数是最常用的两种方法。另外,使用 array_diff_key()rrreee

Darunter ist $array das Array der zu löschenden Elemente und key der Schlüsselname davon das zu löschende Element.

Der Beispielcode lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Das Ausgabeergebnis lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Wie Sie dem Ausgabeergebnis entnehmen können, ist das Element age wurde erfolgreich gelöscht. #🎜🎜##🎜🎜#2. array_splice-Funktion #🎜🎜##🎜🎜#Zusätzlich zur Verwendung der Funktion unset() können Sie auch eine andere integrierte Funktion in PHP array_splice( ), um ein Element aus einem Array zu löschen. Diese Funktion kann ein oder mehrere aufeinanderfolgende Elemente im Array löschen und das Array gelöschter Elemente zurückgeben. Seine Syntax lautet wie folgt: #🎜🎜#rrreee#🎜🎜# Unter diesen ist $array das Array der zu löschenden Elemente, $offset ist die Startposition von das zu löschende Element, $length ist die Anzahl der zu löschenden Elemente. #🎜🎜##🎜🎜#Der Beispielcode lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Das Ausgabeergebnis lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Wie aus dem Ausgabeergebnis ersichtlich ist, Elemente 2, 3 und 4 wurden erfolgreich gelöscht und in der Variablen $deleted gespeichert. #🎜🎜##🎜🎜#Es ist zu beachten, dass die Funktion array_splice() die Struktur des ursprünglichen Arrays ändert und daher mit Vorsicht verwendet werden muss. #🎜🎜##🎜🎜#3. array_diff_key-Funktion #🎜🎜##🎜🎜#Ein weiterer gängiger Ansatz ist die Verwendung der Funktion array_diff_key(), die die Schlüsselnamen zweier Arrays vergleichen und kombinieren kann Gibt den Schlüsselnamen-Differenzsatz zurück. Mit dieser Funktion können wir problemlos Elemente löschen, die einem oder mehreren Schlüsselnamen entsprechen. #🎜🎜##🎜🎜#Der Beispielcode lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Das Ausgabeergebnis lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Wie Sie dem Ausgabeergebnis entnehmen können, ist das Element age und gender wurden erfolgreich gelöscht. #🎜🎜##🎜🎜#Es ist zu beachten, dass die Funktion array_diff_key() ein Differenzarray zurückgibt. Das ursprüngliche Array wird nicht geändert, daher muss das Rückgabeergebnis in einem neuen Array gespeichert werden . . #🎜🎜##🎜🎜#4. Fazit#🎜🎜##🎜🎜#In PHP können wir verschiedene Methoden verwenden, um Elemente in einem Array zu löschen, darunter die Funktion unset() und array_splice() ist die beiden am häufigsten verwendeten Methoden. Darüber hinaus ist die Verwendung der Funktion array_diff_key() auch eine flexiblere Methode, mit der Elemente im Array basierend auf dem Schlüsselnamen gelöscht werden können. #🎜🎜##🎜🎜#Es ist zu beachten, dass Sie beim Ausführen von Array-Operationen darauf achten müssen, die Struktur des Arrays nicht zu zerstören, um unerwartete Situationen zu vermeiden. #🎜🎜#

Das obige ist der detaillierte Inhalt vonSo löschen Sie ein Array basierend auf dem Schlüssel in PHP. 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