Copy code
$arr = array(0, 3, 5, 0, 0, 7, 1, 9, 0, 8)
foreach ($arr as $key =>$val) {
if ($val === 0) {
array_push($arr, 0)
array_splice($arr, $key, 1)
}
}
print_r($arr)
在本示例中,通过 foreach 循环遍历数组 $arr,并通过 if 语句检查每个元素是否为 0。如果 $val 元素为 0,则使用 array_push() 函数将一个 0 添加到数组的末尾,再使用 array_splice() 函数移除这个 0 的原始元素。
最后,使用 print_r() 函数打印数组 $arr 的新值。运行上述代码,输出为:
Copy code
Array
(
[0] =>3
[1] =>5
[2] =>7
[3] =>1
[4] =>9
[5] =>8
[6] =>0
[7] =>0
[8] =>0
[9] =>0
)
可以看到,输出结果数组正确地将原始数组中毕哪昌的所有 0 移动到了末尾,并保持了所有缓州其他元素的相对位置不变。手扒
$arr = array(array(1,2,3),
array("a","b","c")
)
//在数拍樱组尾部添加祥贺租元素
$arr[]=array(11,22,33)
print_r($arr)
这是输出的结果!
Array(
[0] =>谨兆 Array
(
[0] =>1
[1] =>2
[2] =>3
)
[1] =>Array
(
[0] =>a
[1] =>b
[2] =>c
)
[2] =>Array
(
[0] =>11
[1] =>22
[2] =>33
)
)
用array_slice()函数array
array_slice
(
array
myarray,
int
offset
[,
int
length]
)
返回myarray数组从地offset开始的length个元素
array_splice与上面的函数类似,只是把返回的部分删除或替代山数
你的问题实现方法(给你写成函数):
<?php
function
array_insert($myarray,$value,$position=0)
{
$fore=($position==0)?array():array_splice($myarray,0,$position)
$fore[]=$value
$ret=array_merge($fore,$myarray)
return
$ret
}
?>前局
此函数用法
返回一个数组,内容是在$myarray数组的$position处插逗悔首入$value
例如:
$a=array("a",
"b","c",
"d")
$a=array_insert($a,"add",3)
print_r($a)
//Array
(
[0]
=>
a
[1]
=>
b
[2]
=>
c
[3]
=>
add
[4]
=>
d
)
【代码我测试过没有问题】
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)