首页 > 解决方案 > 无循环的数组结构重排

问题描述

我有一个如下所述的数组,我想在不使用循环的情况下重新排列:

Array
(
    [0] => Array
        (
            [Books] => Array
                (
                    [id] => 4
                )

        )

    [1] => Array
        (
            [Books] => Array
                (
                    [id] => 3
                )

        )

    [2] => Array
        (
            [Books] => Array
                (
                    [id] => 2
                )

        )

    [3] => Array
        (
            [Books] => Array
                (
                    [id] => 1
                )

        )

)

我想要这样的输出:

Array(4,3,2,1)

标签: php

解决方案


我假设您不想使用 for 或 foreach 循环,但内部使用或使用循环的任何其他内容都可以。

在这种情况下,您可以使用 array_map:

$result = array_map(function($item){
  return $item['books']['id'];
}, $currentArray);

或者

如果你甚至不想这样:

$v1 = array_column($input, 'books');
$result = array_column($v1, 'id');

推荐阅读