php - 在查询结果中将不同的数组合并为一个数组

标签 php arrays multidimensional-array

我是 PHP 和 CodeIgniter 的新手。所以我有一个像这样的数据库查询结果:

Result = array(

A = array(
        [a]=>'1',
        [b] =>'2',
     );

B = array(
        [a] =>'1',
        [b] =>'3',
     );

C = array(
        [a] =>'1',
        [b] =>'4',
     );

**and more...**

);

那么我怎样才能像这样将它们合并成一个数组:

Result = array(

     Z = array(

        [a] =>'1',
        [b] => array(

               [0] =>'2',
               [1] =>'3',
               [2] =>'4',
        );

     );

非常感谢...

最佳答案

$A = array( 'a' => '1', 'b' => '2', 'c' => '3');
$B = array( 'a' => '1', 'b' => '3', 'd' => '4');
$C = array( 'a' => '1', 'b' => '4', 'c' => '5');

$Result = array($A, $B, $C);
$Z = array();
foreach ($Result as $set) {
    foreach ($set as $key => $val) {
        if (isset($Z[$key])) {
            if (is_array($Z[$key])) {
                $Z[$key][] = $val;
            } elseif ($Z[$key] != $val) {
                $Z[$key] = array($Z[$key], $val);
            }
        } else {
            $Z[$key] = $val;
        }
    }
}

print_r($Z);

输出

Array
(
    [a] => 1
    [b] => Array
        (
            [0] => 2
            [1] => 3
            [2] => 4
        )

    [c] => Array
        (
            [0] => 3
            [1] => 5
        )

    [d] => 4
)

如果你想要每个键的唯一值,例如,如果你想避免 a 等于 array(1, 1, 2),那么你可以这样做:

$Z = array();
foreach ($Result as $set) {
    foreach ($set as $key => $val) {
        if (!isset($Z[$key])) {
            $Z[$key] = array();
        }
        $Z[$key][] = $val;
    }
}

foreach($Z as $k => $v) {
    $newv = array_unique($v);
    if (count($newv) == 1) {
        $Z[$k] = $newv[0];
    } else {
        $Z[$k] = $newv;
    }
}

print_r($Z);

关于php - 在查询结果中将不同的数组合并为一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13774820/

相关文章:

c - 如何从 C 中的一行控制台输入创建一个数组?

Java - 如何在不使用别名的情况下在方法多维数组中返回

php - MongoDB 模式设计。得不到我想要的

java - 有效地测试数组成员资格

javascript - 如何访问对象的值?

python - 如何有效地从 numpy 数组中每行输出 n 项

arrays - 高效/并行在 Java <= 1.7 中对数组中的每个元素应用操作?

javascript - 我想访问 javascript 函数内的输入字段,其 id 是使用 php 代码生成的

php - 如何链接在 php mysql 中创建的 RSS feed

php - 如何使用 YouTube API V3 获取视频观看次数?