php - 如何根据PHP中的值合并两个数组?

标签 php mysql sql arrays codeigniter

我有两个数组,我需要将它们合并在一起!!

数组 1

Array
(
  [0] => Array
      (
        [brand] => CARTIER
        [amount_2014] => 136476
      )

  [1] => Array
    (
        [brand] => TIFFANY & CO.
        [amount_2014] => 22000
    )
  [2] => Array
    (
        [brand] => Test
        [amount_2014] => 33000
    )


 )

数组 2

   Array
 (
   [0] => Array
    (
        [brand] => CARTIER
        [amount_2013] => 22052
    )
   [1] => Array
    (
        [brand] => Test
        [amount_2013] => 3313
    )

 )

我需要结果数组:

 Array
   (
    [0] => Array
      (
        [brand] => CARTIER
        [amount_2014] => 136476
        [amount_2013] => 22052
      )

    [1] => Array
      (
        [brand] => TIFFANY & CO.
        [amount_2014] => 22000
        [amount_2013] => 0
    )

   [2] => Array
      (
        [brand] => Test
        [amount_2014] => 33000
        [amount_2013] => 3313
    )

 )

因此,对于每个 [品牌],我都需要 [amount_2014] 和 [amount_2013] 中的金额,如果没有任何一个,那么我需要它的值为 0;

我在这个项目中使用 CodeIgniter,我只有一个包含字段(品牌、金额、年份)的表,我正在发出两个查询以获取 2013 年和 2014 年的金额总和。

(我正在与 array_merge 和 array_combine 作斗争,但在这种情况下对我没有用,如果有人可以帮助查询那么它也非常有帮助)。

最佳答案

试试这个:

function cars_array_merge()
{
    $arrays = func_get_args();
    foreach ($arrays as &$array)
    {
        $new_arr = array();
        foreach ($array as $value)
        {
            $brand = $value['brand'];
            unset($value['brand']);
            $new_arr[$brand] = $value;
        }
        $array = $new_arr;
    }
    $arrays = call_user_func_array('array_merge_recursive', $arrays);
    foreach ($arrays as $brand => &$array)
        $array['brand'] = $brand;
    return array_values($arrays);
}

// testing

$arr1 = [
    [ 'brand' => 'CARTIER', 'mount_2014' => 136476 ],
    [ 'brand' => 'TIFFANY & CO.', 'mount_2014' => 22000 ]
];

$arr2 = [
    [ 'brand' => 'CARTIER', 'mount_2013' => 22052 ]
];

print_r(cars_array_merge($arr1, $arr2));

输出:

Array
(
    [0] => Array
        (
            [mount_2014] => 136476
            [mount_2013] => 22052
            [brand] => CARTIER
        )

    [1] => Array
        (
            [mount_2014] => 22000
            [brand] => TIFFANY & CO.
        )
)

关于php - 如何根据PHP中的值合并两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25225752/

相关文章:

php - 在 Windows 中,PHP 的 exec 无法识别正版命令

PHP Mysql 显示和连接行

使用 str_to_date 从 .txt 文件读取日期类型时出现 mysql 问题

sql - 如何使用特定范围的随机数更新表的字段

sql - H2 数据库 CREATE TABLE 带约束

mysql - SQL - 查找具有最新日期的人

php - Soap xml 在 php 中传递引用

php mysql foreach echo 错误

mysql - 如何将这两个查询合并为一个

mysql复杂分组按学​​生分