使用键的PHP中的数组映射

前端之家收集整理的这篇文章主要介绍了使用键的PHP中的数组映射前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
只是为了好奇(我知道它可以是单行foreach语句),是否有一些 PHP数组函数(或许多的组合)给出一个数组,如:
Array (
    [0] => stdClass Object (
        [id] => 12
        [name] => Lorem
        [email] => lorem@example.org
    )
    [1] => stdClass Object (
        [id] => 34
        [name] => Ipsum
        [email] => ipsum@example.org
    )
)

而且,给定“id”和“name”,产生如下:

Array (
    [12] => Lorem
    [34] => Ipsum
)

我使用这个模式很多,我注意到array_map在这种情况下是无用的,因为你不能指定返回数组的键.

只需使用 array_reduce
$obj1 = new stdClass;
$obj1 -> id = 12;
$obj1 -> name = 'Lorem';
$obj1 -> email = 'lorem@example.org';

$obj2 = new stdClass;
$obj2 -> id = 34;
$obj2 -> name = 'Ipsum';
$obj2 -> email = 'ipsum@example.org';

$reduced = array_reduce(
    // input array
    array($obj1,$obj2),// fold function
    function(&$result,$item){ 
        // at each step,push name into $item->id position
        $result[$item->id] = $item->name;
        return $result;
    },// initial fold container [optional]
    array()
);

这是一个单行的评论^^

猜你在找的PHP相关文章