加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用键的PHP中的数组映射

发布时间:2020-12-13 16:41:38 所属栏目:PHP教程 来源:网络整理
导读:只是为了好奇(我知道它可以是单行foreach语句),是否有一些 PHP数组函数(或许多的组合)给出一个数组,如: Array ( [0] = stdClass Object ( [id] = 12 [name] = Lorem [email] = lorem@example.org ) [1] = stdClass Object ( [id] = 34 [name] = Ipsum [emai
只是为了好奇(我知道它可以是单行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()
);

这是一个单行的评论^^

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读