PHP 数组各种操作:增、删、改
2018-12-29 本文已影响1人
CoderZb
一、数组元素增加
数组尾部增加元素
- 代码如下:
$all_array = array();
array_push($all_array,1,2,3);
dump($all_array);
或者
$all_array = array();
array_push($all_array,1,2,3);
$all_array[] = 1;
$all_array[] = 2;
$all_array[] = 3;
dump($all_array);
- 打印结果如下:
array(3) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
}
数组头部添加增加
- 代码如下:
$all_array = ['jianshu', 'CoderZB'];
array_unshift($all_array, 'My', 'Information:');
dump($all_array);
- 打印结果
array(4) {
[0] => string(2) "My"
[1] => string(14) "Information:"
[2] => string(7) "jianshu"
[3] => string(7) "CoderZB"
}
二、数组元素修改
数组元素value的修改
- 代码如下:
$all_array = ['jianshu', 'CoderZB'];
$all_array[0]='MyInfo:';
dump($all_array);
- 打印结果
array(2) {
[0] => string(9) "MyInfo:"
[1] => string(7) "CoderZB"
}
数组元素key的修改(利用foreach遍历)
- 代码如下:
$all_array =array(
'userName' =>'CoderZb',
'platform' =>'jianshu',
'feature' =>'Willing to share',
);
foreach ($all_array as $v=>$k){
$all_array['characteristic'] =$all_array['feature'];// 见characteristic这个key修改成feature
}
unset($all_array['feature']);// unset()函数销毁数组中的feature字段。
dump($all_array);
- 打印结果:
array(3) {
["userName"] => string(7) "CoderZb"
["platform"] => string(7) "jianshu"
["characteristic"] => string(16) "Willing to share"
}
三、数组元素的删除
删除单个元素
要求:删除单个元素并使索引连续。
- 做法一:
unset()
函数删除某个元素,原有索引值不变,索引值不连续。但是再使用array_values()
函数对索引重新排序,就能达到要求了 - 代码如下:
// unset()函数删除某个元素,原有索引值不变,索引值不连续。
$all_array = array(0 => "Info", 1 => "jianshu", 2 => "CoderZB");
unset($all_array[1]);
dump($all_array);
// array_values()索引重新排序,这样索引就是连续的了。
$all_array = array_values($all_array);
dump($all_array);
- 打印结果:
array(2) {
[0] => string(4) "Info"
[2] => string(7) "CoderZB"
}
array(2) {
[0] => string(4) "Info"
[1] => string(7) "CoderZB"
}
- 做法二:array_splice()函数删除某个元素,索引值连续。
- 代码如下:()
$all_array = array(0 => "Info", 1 => "jianshu", 2 => "CoderZB");
array_splice($all_array, 2, 1);// 删除索引为2,长度为1的元素。
dump($all_array);
- 打印结果
array(2) {
[0] => string(4) "Info"
[1] => string(7) "jianshu"
}
删除多个元素
要求:删除多个元素并使索引连续。
- 做法一(既可以删除数组中连续的元素,也可以删除数组中不连续的元素。这里为了突出做法一的作用,删除多个不连续的元素):
array_diff()
函数删除多个元素,原有索引值不变,索引值不连续。但是再使用array_values()
函数对索引重新排序,就能达到要求了。 - 代码如下:
// array_diff()函数删除多个元素,原有索引值不变,索引值不连续。
$all_array = array(0 => "Info", 1 => "jianshu", 2 => "CoderZB",3 => "enjoy",4 => "reading");
$all_array = array_diff($all_array, ["Info", "enjoy"]);
dump($all_array);
// array_values()索引重新排序,这样索引就是连续的了。
$all_array = array_values($all_array);
dump($all_array);
- 打印结果
array(3) {
[1] => string(7) "jianshu"
[2] => string(7) "CoderZB"
[4] => string(7) "reading"
}
array(3) {
[0] => string(7) "jianshu"
[1] => string(7) "CoderZB"
[2] => string(7) "reading"
}
- 做法二:array_splice()函数删除多个元素,索引值连续。
- 代码如下:
$all_array = array(0 => "Info", 1 => "jianshu", 2 => "CoderZB",3 => "enjoy",4 => "reading");
array_splice($all_array, 1, 2);
dump($all_array);
- 打印结果
array(3) {
[0] => string(4) "Info"
[1] => string(5) "enjoy"
[2] => string(7) "reading"
}
清空数组
- 代码如下:
$all_array = array(0 => "Info", 1 => "jianshu", 2 => "CoderZB",3 => "enjoy",4 => "reading");
unset($all_array);