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;
});

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...