在PHP中,二维数组经常被用来存储表格数据或者以键值对的形式存储相关数据。但是有时候我们需要从二维数组中删除某些数据,因此本文将介绍多种删除二维数组数据的方法。
- array_splice()函数
array_splice()函数可以从数组中删除某一段数据,并返回删除的元素。它的用法如下:
array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement = array() ]] ) : array
其中,$input参数是需要操作的数组;$offset参数是要开始删除的索引位置;$length参数是要删除的元素个数;$replacement参数是可以用来替换删除的元素。如果没有指定$length参数,则删除的元素将会从$offset位置开始一直到数组末尾。如果$replacement参数也没有指定,则返回的是被删除元素所组成的数组。
在二维数组中删除某个元素时,我们需要指定删除的位置和数量,因此可以使用以下代码:
$array = array(
array('id' => 1, 'name' => 'A'),
array('id' => 2, 'name' => 'B'),
array('id' => 3, 'name' => 'C'),
array('id' => 4, 'name' => 'D')
);
$index = 1; //要删除的索引位置
$len = 1; //要删除的元素个数
array_splice($array, $index, $len);
执行完上述代码后,数组$array将会被修改为:
[
['id' => 1, 'name' => 'A'],
['id' => 3, 'name' => 'C'],
['id' => 4, 'name' => 'D']
]
- unset()函数
unset()函数可以用来删除数组指定键名所对应的元素:
unset($array[$key]);
在二维数组中删除某个元素时,我们需要指定要删除的键名和所在的数组。例如,在以下数组中删除id为2的记录:
$array = array(
array('id' => 1, 'name' => 'A'),
array('id' => 2, 'name' => 'B'),
array('id' => 3, 'name' => 'C'),
array('id' => 4, 'name' => 'D')
);
$key = null;
foreach ($array as $k => $v) {
if ($v['id'] == 2) {
$key = $k; //找到了要删除的键名
break;
}
}
if ($key !== null) {
unset($array[$key]);
}
执行完上述代码后,数组$array将会被修改为:
[
['id' => 1, 'name' => 'A'],
['id' => 3, 'name' => 'C'],
['id' => 4, 'name' => 'D']
]
- array_filter()函数
array_filter()函数可以用来过滤数组中的元素,即删除数组中不符合条件的元素。当第二个参数未传递时,默认会删除值为 false 的元素。
在二维数组中删除某个元素时,我们需要使用callback函数来进行判断过滤。例如,在以下数组中删除id为2的记录:
$array = array(
array('id' => 1, 'name' => 'A'),
array('id' => 2, 'name' => 'B'),
array('id' => 3, 'name' => 'C'),
array('id' => 4, 'name' => 'D')
);
$array = array_filter($array, function($v) {
return $v['id'] != 2; //返回id不等于2的记录
});
执行完上述代码后,数组$array将会被修改为:
[
['id' => 1, 'name' => 'A'],
['id' => 3, 'name' => 'C'],
['id' => 4, 'name' => 'D']
]
总结
本文介绍了PHP中多种删除二维数组数据的方法,包括array_splice()函数、unset()函数和array_filter()函数。不同的方法可以根据不同的需求进行选择,具体实现方式也可以根据实际情况进行优化和改进。当然,在使用任何方法时,务必要注意数组的键名和索引位置,避免出现不必要的错误。
以上就是php 二维数组 删除的详细内容,更多请关注编程网其它相关文章!