在某個數(shù)組中刪除一個元素,我是直接用的unset,也不管unset之后會發(fā)生什么。但今天看到的東西卻讓我大吃一驚,并不是我想象的那樣,我用示例來說明
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的棗陽網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
我們來舉一個例子:
代碼如下:
?php
$arr
=
array('a','b','c','d');
unset($arr[1]);
print_r($arr);
?
我之前想象的是unset之后,數(shù)組$arr應(yīng)該會壓縮數(shù)組以填補缺少的元素位置,但print_r($arr)之后,結(jié)果卻不是那樣的,最終結(jié)果是
Array
(
[0]
=
a
[2]
=
c
[3]
=
d
);
如果是這樣的話,那我們就來看看數(shù)字數(shù)組的形式
代碼如下:
?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);
?
可以看到輸出的形式也是數(shù)組是會填補缺少的元素的位置。那么怎么才能做到缺少的元素會被填補并且數(shù)組會被重新索引呢?答案是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的函數(shù):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() 函數(shù)從數(shù)組中可實現(xiàn)對數(shù)據(jù)中元素的添加、修改、刪除操作,方便對數(shù)組中的值進行處理。
語法:array_splice(array,start,length,array) ,start是從0開始標記,千萬不要忘記。注意添加和修改時參數(shù)是4個,刪除是3個參。
添加元素:
刪除元素:
修改元素:
break;
case
"a2":
//根據(jù)$id來刪除$strarray數(shù)組中對應(yīng)鍵值的元素值,完成后就重新生成數(shù)組.
//大家?guī)臀彝瓿蛇@部分.
//下面是我補充的
unset($strarray[$id]);
//補充結(jié)束
break;
case
"a3":
//用戶把信息提交到這里,根據(jù)提交的$id與數(shù)組$strarray的鍵值對比,如果相同就把數(shù)組對應(yīng)的元素值改變,注:其它的元素值和鍵位值都不變.完成后就重新生成數(shù)組.
//大家把這部分幫我完成一下
//下面是我補充的
if
(isset($strarray[$id]))
$strarray[$id]=$value;
//補充結(jié)束
break;