【问题标题】:"Join" Arrays with values from left array to keys from right array将左侧数组中的值“连接”到右侧数组中的键的数组
【发布时间】:2015-09-09 13:00:48
【问题描述】:

我必须在不迭代的情况下加入我想要连接在一起的数组。
背景信息:

$Arr1 是用户所在的所有组的数组。
$Arr2 是与 Groups 关联的所有 Contentpages 作为数组键的数组。

我的目标是获得一个包含所有允许用户查看的内容页面的数组

$Arr1 = array("Group1","Group3","Group5");

$Arr2["Group1"] = array("Content1","Content2");
$Arr2["Group2"] = array("Content5");
$Arr2["Group3"] = array("Content3");

我的结果应该是一个包含所有“内容”元素的数组:

array("Content1","Content2","Content3");  

array_fill_keys 或 array_merge 有什么技巧可以避免迭代吗?

【问题讨论】:

    标签: php arrays filter


    【解决方案1】:

    你可以试试array_fliparray_intersect_key

    $intersect = array_intersect_key($Arr2, array_flip($Arr1))
    

    然后您可以使用array_merge 将其展平为一个数组。

    $content = call_user_func_array('array_merge', $intersect);
    

    演示:https://eval.in/430592

    【讨论】:

    • + 我总是宣扬 PHP 有一个数组函数可以满足各种需求。这就是很好的证明。
    • 太棒了,谢谢!与 foreach 循环相比,有人知道这在性能方面会有什么影响吗?
    猜你喜欢
    • 2021-06-15
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    相关资源
    最近更新 更多