$array = [0 => "a",1 => "b",2 => "c"];unset($array[1]); ↑ Key which you want to delete4 [5 y% D8 Z; }) }8 A3 i
输出:! Q( I& y4 {. M m
[0] => a [2] => c]5 y4 f4 R, V4 S! I
\array_splice()方法如果您使用\array_splice()这些键会自动重新索引,但关联键不会改变 - 与 相反\array_values(),它将所有键转换为数字键。) t) W: g+ K g6 _
\array_splice()需要offset而不是key作为第二个参数。% \2 \3 p9 m# @4 ^! e
代码: 9 ?; @# k8 F( K- w" D
$array = [0 => "a",1 => "b",2 => "c"];\array_splice($array,1、1); ↑ Offset which you want to delete % K% o2 `# N$ W1 _8 B
输出: W( J8 c& J1 ^8 f
[0] => a [1] => c] & Z- i! S& ^& o8 D g5 R+ H
array_splice(),和 一样unset(),通过引用获数组。您不会将这些函数的返回值分配回数组。 # l( H! d/ S' |* f删除多个数组元素想删除多个数组元素,不想调用unset()或\array_splice()多次调用使用函数\array_diff()或\array_diff_key()取决于您是否知道要删除的元素的值或键。( M+ E$ m R, }
\array_diff()方法如果您知道要删除的数组元素的值,可以使用\array_diff(). 和以前一样,unset()它不会更改数组的键。7 q4 w4 W: K( L8 U) @
代码:& ^6 O1 b2 S' l3 J; C5 o9 y0 X
$array = [0 => "a",1 => "b",2 => "c",3 => "c"];$array = \array_diff($array,["a","c"]); └────────┘ Array values which you want to delete6 y A: S% u2 _9 v4 `6 Z
输出: ) S9 H' s O, y" \) t9 c) Q- K
[1] => b] 3 j& R; T, c4 U Z: o
\array_diff_key()方法如果您知道要删除的元素的键,那么您要使用\array_diff_key(). 您必须确保将键作为第二个参数中的键,而不是作为值传输。键不会重新索引。$ o: o+ ~9 L) I, w
代码:. { I; c4 q# w
$array = [0 => "a",1 => "b",2 => "c"];$array = \array_diff_key($array,[0 => "xy","2" => "xy"]); ↑ ↑ Array keys which you want to delete0 J9 W7 u. K' K# i% h5 o: w4 m