php 数组 将指定元素移至末尾

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 数组 将指定元素移至末尾相关的知识,希望对你有一定的参考价值。

比如有一数组:
0,3,5,0,0,7,1,9,0,8
我需要将全部0元素移到数组末尾,不改变其他元素顺序,即变成:
3,4,7,1,9,8,0,0,0,0
php如何实现?

可以使用 PHP 的 array_push() 和 array_splice() 函数来实现将指定元素(0)移动到数组的末尾。以下是示例代码:

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 移动到了末尾,并保持了所有其他元素的相对位置不变。
参考技术A $arr = array(0,3,5,0,0,7,1,9,0,8);
$count = count($arr);
$remove_arr = array();
for($i=0;$i<=$count;$i++)
if($arr[$i] === 0)
array_push($arr, $arr[$i]);
array_push($remove_arr, $i);



foreach($arr as $k=> $v)
if(in_array($k, $remove_arr))
unset($arr[$k]);


echo '<pre>';
var_dump($arr);die;本回答被提问者采纳
参考技术B function moveZeroEnd($arr)


if (empty($arr)) return false;
for ($i = 0; $i < count($arr) ; $i++)
if ($arr[$i] == 0)
array_push($arr, $arr[$i]);//把为0的值追加到末尾
unset($arr[$i]);




return $arr;


$arr = [0,3,5,0,0,7,1,9,0,8];
echo "<pre>";
print_r(moveZeroEnd($arr));
echo "</pre>";
结果如下所示:
Array
(
[1] => 3
[2] => 5
[5] => 7
[6] => 1
[7] => 9
[9] => 8
[10] => 0
[11] => 0
[12] => 0
[13] => 0
)
参考技术C

可以使用 array_shift 和 array_push 两个函数来实现将指定元素移至末尾的操作。


php

<?php

$arr = array('a', 'b', 'c', 'd');

$element = 'c';

$key = array_search($element, $arr);

if ($key !== false)

array_splice($arr, $key, 1);

array_push($arr, $element);

print_r($arr);

?>


输出结果:Array(    [0] => a    [1] => b    [2] => d    [3] => c)这个例子中,我们首先找到数组中要移动的元素的索引位置,然后使用 array_splice 函数将其从数组中移除,最后使用 array_push 函数将其添加到数组末尾。注意,如果要移动的元素不在数组中,array_search 函数返回 false。

以上是关于php 数组 将指定元素移至末尾的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中将具有已知键的数组元素移动到数组的末尾?

php如何查找数组中是不是含有某个元素?

Python 列表/数组方法

Python 列表/数组方法

php数组怎么添加一个元素

在 PHP 中,如何将对象元素添加到数组中?