-2
大批
(
    [0] => 数组
        (
            [0] => “产品类别”
            [1] => 产品名称
            [2] => 产品编号
            [3] => 平均商品价格
            [4] => 物品销售
            [5] => 已售商品
            [6] => 产品转化(售出/浏览)
            [7] => 物品放弃率
        )
    [1] => 数组
        (
            [0] => 总体
            [1] => -
            [2] => -
            [3] => 51.17 美元
            [4] => 1335974.77 美元
            [5] => 26111
            [6] => 16.25%
            [7] => 42.06%
        )



阵列 B:
大批
(
    [0] => 数组
        (
            [0] => “内容类别”
            [1] => 页面名称
            [2] => 页面浏览量
            [3] => 会话
            [4] => 订单/会话
            [5] => 销售
            [6] => 跳出率
            [7] => 页面浏览量/会话
        )

    [1] => 数组
        (
            [0] => 总体
            [1] => -
            [2] => 1017924
            [3] => 135154
            [4] => 16.57%
            [5] => 1354866.20 美元
            [6] => 23.81%
            [7] => 7.53
        )



我想将两个数组合并为一个......结果将如下所示:

大批
(
    [0] => 数组
        (
            [0] => “产品类别”
            [1] => 产品名称
            [2] => 产品编号
            [3] => 平均商品价格
            [4] => 物品销售
            [5] => 已售商品
            [6] => 产品转化(售出/浏览)
            [7] => 物品放弃率
            [8] => “内容类别”
            [9] => 页面名称
            [10] => 页面浏览量
            [11] => 会话
            [12] => 订单/会话
            [13] => 销售
            [14] => 跳出率
            [15] => 页面浏览量/会话

        )
     [1] => 数组
        (
            [0] => 总体
            [1] => -
            [2] => -
            [3] => 51.17 美元
            [4] => 1335974.77 美元
            [5] => 26111
            [6] => 16.25%
            [7] => 42.06%
            [8] => 总体
            [9] => -
            [10] => 1017924
            [11] => 135154
            [12] => 16.57%
            [13] => 1354866.20 美元
            [14] => 23.81%
            [15] => 7.53

        )

我只想输出“产品类别”==“内容类别”的匹配数组,并结合两个数组元素......

我不太确定是否有一个预定义的函数,但我假设我必须做某种 array_intersect() 或 array_merge() ......重点是抓住匹配的元素并结合两个元素从两个数组合二为一,所以我可以做一些后处理计算......

谢谢!

4

2 回答 2

1

这会产生您要求的数组:

$result = array(
    array_merge($A[0], $B[0]), 
    array_merge($A[1], $B[1])
);
于 2012-08-29T21:59:46.170 回答
0

我想出了我的问题的答案..

// loop through ARRAY A
for ($i = 0; $i < count($arrA); $i++) {

    //loop through ARRAYB

    for ($j = 0; $j < count($arrB); $j++) {

        // if arrA value 0 matches arrB value 0
        if ($arrA[$i][0] == $arrB[$j][0]) {
            //append arrB to arrA
            $arrA[$i] = array_merge($arrA[$i], $arrB[$j]);
            break;
        }
    }
}

//clean out items

for ($i = (count($arrA)-1); $i >= 0 ; $i--) {

    if (count($arrA[$i]) < 16) {
        unset($arrA[$i]);
    }
}
于 2012-09-04T19:34:52.617 回答