重新排序数组的键和值顺序

发布于 2024-12-16 14:37:58 字数 304 浏览 0 评论 0原文

假设我有一个

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

想要 o/p 的数组,

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

在我的第一个数组中,

[1]=>NULL

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

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

Say I've got an array

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

I want o/p as

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

In my first array

[1]=>NULL

I've tried to remove this and reorder so, I used array_filter() to remove the null value.

Now, how do I reorder the array?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

濫情▎り 2024-12-23 14:37:58

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

print_r( array_values($arr) );

这是一个示例: http://codepad.org/q7dVqyVY

If I understand what you need, I think array_values should help (it will return only the values in the array, reindexed from 0):

print_r( array_values($arr) );

Here's an example of this: http://codepad.org/q7dVqyVY

空城之時有危險 2024-12-23 14:37:58

您可能想要使用合并

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

You might want to use merge:

$newArray = array_merge(array(),$oldArray);
爱冒险 2024-12-23 14:37:58
$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

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

or

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

Credit goes to: http://www.codingforums.com/archive/index.php/t-17794.html.

零崎曲识 2024-12-23 14:37:58
<?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,只需将其定义为正常即可。

<?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,
)
?>

NOTE: I am using an anonymous callback function for array_filter. Anonymous callback only works in php 5.3+ and is the appropriate in this case (IMHO). For previous versions of php just define it as normal.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文