PHP Laravel 检查两个数组是否具有匹配的键值,如果是,则从数组 1 中取出一个元素并插入数组 2

标签 php laravel

<分区>

我有几个看起来像这样的数组:

['itemId' => 2, 'title' => 'someTitle', 'bulk_id' => 4]
['itemId' => 3, 'title' => 'someTitle', 'bulk_id' => 5]
['itemId' => 4, 'title' => 'someTitle', 'bulk_id' => 6]

还有另外三个看起来像这样的:

['info' => 'someInfo', 'bulk_id' => 6]
['info' => 'someInfo', 'bulk_id' => 5]
['info' => 'someInfo', 'bulk_id' => 4]

现在我想找到具有匹配 bulk_id 的数组,当我这样做时,我想获取第一个数组的 itemId 元素并添加第二个数组,这样它会变成这样:

['itemId' => 4, 'info' => 'someInfo', 'bulk_id' => 6]
['itemId' => 3, 'info' => 'someInfo', 'bulk_id' => 5]
['itemId' => 2, 'info' => 'someInfo', 'bulk_id' => 4]

PhP 或 Laravel 是否有检查和合并数组的辅助函数?

最佳答案

你可以使用 eloquent collection map() 进行合并,并使用 toArray() 使其再次成为数组。

$merged = collect($arrays2)->map(function ($value) use ($arrays1)  {

        foreach($arrays1 as $array){
            if($value["bulk_id"]==$array["bulk_id"]){
                $value["itemId"] = $array["itemId"];
            }
        }

        return $value;
    });

    return $merged->toArray();

关于PHP Laravel 检查两个数组是否具有匹配的键值,如果是,则从数组 1 中取出一个元素并插入数组 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48486339/

相关文章:

php - 将表单输入与正则表达式进行比较

laravel - 删除然后在当前向上迁移功能中创建相同的列

php - 使用 PHP/CURL 的 Neteller TransferOut

javascript - 在默认 PDF 查看器的 iframe 中禁用/隐藏下载按钮

php - 计算 php 中正则表达式模式的单词数?

php - 如何在已解析的 HTML 数据中查找元素

php - Laravel 4 - 在构建集合时将 where 子句附加到关系的 Eloquent 方式

php - Laravel - 如何获取文件的路径名

laravel - 数据库[]未配置Laravel 5

php - 使用 jQuery 选项卡更改变量