【问题标题】:How to make a specific merge如何进行特定的合并
【发布时间】:2019-05-23 11:26:50
【问题描述】:

我正在尝试将两个数组合并到一个结果中

$array1 =["pack_id","pack_name","cash"];

$array2 =["pack_id","pack_name","inactifs","actifs","total"];

我的代码如下:

 for ($i = 0; $i < count($cashByPacks); $i++) {
            $result[$i] = array('pack_id' => $cashByPacks[$i]->pack_id, 'pack_name' => $cashByPacks[$i]->pack_name, 'effectif' => 0, 'cash' => $cashByPacks[$i]->cash ?? 0, 'actif' => 0, 'inactif' => 0, 'percent' => 0);

            for ($j = 0; $j < count($query); $j++) {
                if (array_search($query[$j]->pack_id, $result[$i])) {
                    $result[$j] = array('pack_id' => $query[$j]->pack_id, 'pack_name' => $query[$j]->pack_name, 'effectif' => $query[$j]->total, 'actif' => $query[$j]->actifs, 'inactif' => $query[$j]->inactifs, 'cash' => $cashByPacks[$i]->cash ?? 0, 'percent' => ($cashByPacks[$i]->cash == 0) ? 0 : round(($cashByPacks[$i]->cash / $totalcash) * 100, 2));
                }

            }
        }
        return $result;

我希望输出将是一个包含以下内容的数组:

["pack_id","pack_name","cash","actifs","inactifs","totale"] 

【问题讨论】:

    标签: php laravel array-merge


    【解决方案1】:

    使用 array_merge 和 array_diff。
    Array_diff 查找两个数组之间的不同之处,array_merge 将两者合并。

    $arr1 = ["pack_id","pack_name","cash"];
    
    $arr2 =["pack_id","pack_name","inactifs","actifs","total"];
    
    $res = array_merge($arr1, array_diff($arr2, $arr1));
    
    var_dump($res);
    

    或者使用 array_merge 和 array_unique。
    Array_merge 将合并两个数组并创建重复项,array_unique 将删除重复项。

    $arr1 = ["pack_id","pack_name","cash"];
    
    $arr2 =["pack_id","pack_name","inactifs","actifs","total"];
    
    $res = array_unique(array_merge($arr1, $arr2));
    
    var_dump($res);
    

    【讨论】:

    • 谢谢老兄,但我收到此错误Object of class stdClass could not be converted to string
    • 在这种情况下,您的数组看起来不像您所说的那样
    • 正是这种格式0 =&gt; {#1086 ▼ +"pack_id": "1" +"pack_name": "Cadeau" +"cash": "0" } 1 =&gt; {#1101 ▼ +"pack_id": "2" +"pack_name": "Concours eXpress" +"cash": "0" }
    • 这是一个 php 代码(Laravel),这就是为什么要使用两个数组(查询生成器结果)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 2017-05-16
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    相关资源
    最近更新 更多