如何在laravel中合并两个相似的对象

Posted

技术标签:

【中文标题】如何在laravel中合并两个相似的对象【英文标题】:How to merge two similar objects in laravel 【发布时间】:2017-09-30 07:00:30 【问题描述】:

请我在这里需要帮助。我有两个相似的对象,我想将它们合并到 laravel 中的一个对象中。是怎么做到的?

这是我的物品

"course_code":"UGRC110","venue_id":22,"exam_date":"May 6, 2017","exam_time":"3:30 pm","student_no":400

"course_code":"UGRC110","venue_id":25,"exam_date":"May 6, 2017","exam_time":"3:30 pm","student_no":700

我想合并得到这样的东西

"course_code":"UGRC110","venue_id":[22,25],"exam_date":"May 6, 2017","exam_time":"3:30 pm","student_no":[400,700]

我想将 place_id 和 student_no 合并在一起。任何帮助都会 非常感谢..谢谢你

【问题讨论】:

你试过什么?看来你应该只是 json_decode,然后是 array_merge($json1['venue_id'], $json2['venue_id'])array_merge($json1['student_no'], $json2['student_no']) 【参考方案1】:

希望这对您有所帮助。这里我们只使用简单的foreach 来合并这两个json

Try this code snippet here

<?php

$json1 = '"course_code":"UGRC110","venue_id":22,"exam_date":"May 6, 2017","exam_time":"3:30 pm","student_no":400';
$json2 = '"course_code":"UGRC110","venue_id":25,"exam_date":"May 6, 2017","exam_time":"3:30 pm","student_no":700';

json_merge($json1, $json2);
function json_merge($json1, $json2)

    $array1 = json_decode($json1, true);
    $array2 = json_decode($json2, true);
    $result = array();
    foreach ($array1 as $key => $value)
    
        if ($array1[$key] == $array2[$key])
        
            $result[$key] = $array2[$key];
         else
        
            $result[$key][] = $array1[$key];
            $result[$key][] = $array2[$key];
        
    
    return json_encode($result, JSON_PRETTY_PRINT);

输出:


    "course_code": "UGRC110",
    "venue_id": [
        22,
        25
    ],
    "exam_date": "May 6, 2017",
    "exam_time": "3:30 pm",
    "student_no": [
        400,
        700
    ]

【讨论】:

哇.. 太好了.. 谢谢@Sahil ......无论如何,请不要他们有任何可以执行类似功能的 laravel 收集方法,而无需我遍历对象。我想要一个非常有效的方法,因为我会将它应用于我数据库中的数千条记录 @Ernesto laravel 没有一种方法可以做到这一点,您可以将我的代码更改为可以多次使用的 php 函数。 @Ernesto 你可以这样做......我已经编辑了我的帖子希望能帮助你...... 再次感谢@Sahil

以上是关于如何在laravel中合并两个相似的对象的主要内容,如果未能解决你的问题,请参考以下文章

如何删除重复结果并合并在 mySQL 查询中具有相似属性的对象?

如何在 laravel 5.8 中合并两个 sql 表

如何使用 Laravel 合并两个计数

如何在java中合并两个复杂对象

如何在Node.js中合并两个复杂对象

如何在 JavaScript 中将两个对象合并到同一个属性中?