看下列範例:
$ss[0]=a
$ss[1]=b
$ss[2]=c
unset $ss[1] ,重新排序後要變成下列模樣:
$ss[0]=a
$ss[1]=c
我找了一些關於 PHP 的 array 函數 ,找不到有哪個函數可以直接將刪除的陣列做遞補的動作(還是我眼力不好,找不到??)。反倒是看了一堆 array函數,還一直 try。反正,就東湊西湊被我湊出來了。說明如下:
$bagItem["a","b","c"]
unset($bagItem[1]);
刪除了key 1的結果:array([0]>a,[2]>c)
如果想要變成 array([0]>a,[1]>c)就用合併的,程式如下:
for($i=0;$i<count($bagItem);$i++)
$sort[$i]=$i;
$bagItem=array_combine($sort,$bagItem);
說明:
1. 先用for迴圈(*count($bagItem)=$bagItem陣列還有多少個元素)去建立一個新的陣列,
$sort["0","1"] ,$sort這個陣列作用在於給 $bagItem建立一個新的索引。
2. 用 array_combine去合併 $sort 和 $bagItem
如果想多瞭解array_combine,請google吧!
ps. 如有雷同或錯誤,不關我的事唷!!
After delete key, try following statement directly
回覆刪除$bagItem=array_values($sort,$bagItem);
You may get what you want.
Thanks for your comment.
刪除It's what I want. ^ ^