重新排序数组顺序键和值

时间:2011-11-17 08:36:09

标签: php arrays

说我有一个数组

[0]=>test
[2]=>example.

我希望o / p为

[0]=>test
[1]=>example

在我的第一个数组中

[1]=>NULL

我尝试删除此内容并重新排序,因此我使用array_filter()删除null值。

现在,我该如何重新排序数组?

4 个答案:

答案 0 :(得分:3)

如果我理解你需要什么,我认为array_values应该有帮助(它只返回数组中的值,从0重新索引):

print_r( array_values($arr) );

以下是此示例:http://codepad.org/q7dVqyVY

答案 1 :(得分:0)

您可能想要使用merge

$newArray = array_merge(array(),$oldArray);

答案 2 :(得分:0)

$Array = array('0'=>'test,', '2'=>'example');
ksort($Array);
$ArrayTMP = array_values($Array);

$Array = array('0'=>'test,', '2'=>'example');
ksort($Array);
$ArrayTMP = array_merge ($Array,array());

信用证转到:http://www.codingforums.com/archive/index.php/t-17794.html

答案 3 :(得分:0)

<?php
$a = array(0 => 1, 1 => null, 2 => 3, 3 => 0);

$r = array_values(
        array_filter($a, function ($elem)
                {
                    if ( ! is_null($elem))
                        return true;
                })
);

// output:

array (
  0 => 1,
  1 => 3,
  2 => 0,
)
?>

注意:我正在使用array_filter的匿名回调函数。匿名回调仅适用于php 5.3+,在这种情况下是适当的(恕我直言)。对于以前版本的php,只需将其定义为正常。