微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何在不循环的情况下展平一个简单的数组?

我想把一个简单的多维数组转换成一个更简单的数组.

转过来:

Array
(
    [0] => Array
        (
            [id] => 123
        )
    [1] => Array
        (
            [id] => 456
        )
    ...
    [999] => Array
        (
            [id] => 789
        )
)

进入这样的数组:

Array
(
    [0] =>  123
    [1] => 456
    ...
    [999] => 789
)

我想这样做,而不是与foreach循环.这可能在PHP

以下是我已经可以使用foreach循环解决它的方法

$newArr = array();
foreach ($arr as $a) {
    $newArr[] = $a['id'];
}
$arr = $newArr;

我想在没有循环的情况下这样做.你能帮我吗?

解决方法:

你可以映射它:

$arr = array_map(function($element) {
    return $element['id'];
}, $arr);

由于array_map可能在内部循环,因此您可以在没有循环的情况下真正完成:

$arr = array_reduce($arr, function($arr, $element) {
    $arr[] = $element['id'];
    return $arr;
});

但是没有理由不循环.没有真正的性能提升,代码的可读性可以降低.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐