十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在某个数组中删除一个元素,我是直接用的unset,也不管unset之后会发生什么。但今天看到的东西却让我大吃一惊,并不是我想象的那样,我用示例来说明
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的枣阳网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
我们来举一个例子:
代码如下:
?php
$arr
=
array('a','b','c','d');
unset($arr[1]);
print_r($arr);
?
我之前想象的是unset之后,数组$arr应该会压缩数组以填补缺少的元素位置,但print_r($arr)之后,结果却不是那样的,最终结果是
Array
(
[0]
=
a
[2]
=
c
[3]
=
d
);
如果是这样的话,那我们就来看看数字数组的形式
代码如下:
?php
$arr
=
range(5,10,4);
print_r($arr);//span
style="font-family:
Simsun;font-size:16px;
"Array
(
[0]
=
5
[1]
=
6
[2]
=
7
[3]
=
8
[4]
=
9
[5]
=
10
)/span
unset($arr[1]);//span
style="font-family:
Simsun;font-size:16px;
"Array
(
[0]
=
5
[2]
=
7
[3]
=
8
[4]
=
9
[5]
=
10
)/span
print_r($arr);
?
可以看到输出的形式也是数组是会填补缺少的元素的位置。那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice():pre
name="code"
class="php"?php
代码如下:
$arr
=
array('a','b','c','d');
array_splice($arr,1,1);
print_r($arr);
//
span
style="font-family:
Simsun;font-size:16px;
"Array
(
[0]
=
a
[1]
=
c
[2]
=
d
)/span
?
可以使用php的函数:array_filter,例如:
$arr = array (
0 = '64.32.28.254|2020-04-15',
1 = 1,
2 = '64.32.28.254|2020-04-02',
3 = 1,
4 = '64.32.28.254|2020-06-05',
5 = 1,
6 = '64.32.28.254|2020-08-29',
7 = 1,
8 = '64.32.28.254|2020-08-29',
);
$arr = array_filter($arr, function ($val) {
return is_numeric($val) ? false : true;
});
var_dump($arr);
array_splice() 函数从数组中可实现对数据中元素的添加、修改、删除操作,方便对数组中的值进行处理。
语法:array_splice(array,start,length,array) ,start是从0开始标记,千万不要忘记。注意添加和修改时参数是4个,删除是3个参。
添加元素:
删除元素:
修改元素:
break;
case
"a2":
//根据$id来删除$strarray数组中对应键值的元素值,完成后就重新生成数组.
//大家帮我完成这部分.
//下面是我补充的
unset($strarray[$id]);
//补充结束
break;
case
"a3":
//用户把信息提交到这里,根据提交的$id与数组$strarray的键值对比,如果相同就把数组对应的元素值改变,注:其它的元素值和键位值都不变.完成后就重新生成数组.
//大家把这部分帮我完成一下
//下面是我补充的
if
(isset($strarray[$id]))
$strarray[$id]=$value;
//补充结束
break;