2012-08-29 110 views
-2
Array 
(
    [0] => Array 
     (
      [0] => "Product Category" 
      [1] => Product Name 
      [2] => Product ID 
      [3] => Average Item Price 
      [4] => Item Sales 
      [5] => Items Sold 
      [6] => Product Conversion (Sold/Views) 
      [7] => Item Abandonment Rate 
     ) 
    [1] => Array 
     (
      [0] => OVERALL 
      [1] => - 
      [2] => - 
      [3] => $51.17 
      [4] => $1335974.77 
      [5] => 26111 
      [6] => 16.25% 
      [7] => 42.06% 
     ) 



ARRAY B: 
Array 
(
    [0] => Array 
     (
      [0] => "Content Category" 
      [1] => Page Name 
      [2] => Page Views 
      [3] => Sessions 
      [4] => Orders/Session 
      [5] => Sales 
      [6] => Bounce Rate 
      [7] => Page Views/Session 
     ) 

    [1] => Array 
     (
      [0] => OVERALL 
      [1] => - 
      [2] => 1017924 
      [3] => 135154 
      [4] => 16.57% 
      [5] => $1354866.20 
      [6] => 23.81% 
      [7] => 7.53 
     ) 



我想两个数组合并成一个......在那里,结果将类似于:发现两个PHP数组匹配的元素,然后列出两个数组元素结合在一起

 
Array 
(
    [0] => Array 
     (
      [0] => "Product Category" 
      [1] => Product Name 
      [2] => Product ID 
      [3] => Average Item Price 
      [4] => Item Sales 
      [5] => Items Sold 
      [6] => Product Conversion (Sold/Views) 
      [7] => Item Abandonment Rate 
      [8] => "Content Category" 
      [9] => Page Name 
      [10] => Page Views 
      [11] => Sessions 
      [12] => Orders/Session 
      [13] => Sales 
      [14] => Bounce Rate 
      [15] => Page Views/Session 

     ) 
    [1] => Array 
     (
      [0] => OVERALL 
      [1] => - 
      [2] => - 
      [3] => $51.17 
      [4] => $1335974.77 
      [5] => 26111 
      [6] => 16.25% 
      [7] => 42.06% 
      [8] => OVERALL 
      [9] => - 
      [10] => 1017924 
      [11] => 135154 
      [12] => 16.57% 
      [13] => $1354866.20 
      [14] => 23.81% 
      [15] => 7.53 

     ) 

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

我不太确定是否有一个预定义的函数,但我假设我必须做一些array_intersect()或array_merge()...主要的一点是抓住匹配的元素和将来自两个阵列的两个元素合并为一个,以便我可以进行一些后期处理计算...

谢谢!

+0

你尝试过什么? –

+0

array_intersect($ arr1,$ arr2); 我得到了匹配的项目,但只显示第一个数组中的元素...我想结合这两个数组,但只显示“产品类别”/“内容类别”中的匹配项目,我需要项目从阵列A出售,并从阵列B的会话,所以我可以计算出售的项目/会议... – compleks

回答

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]); 
    } 
} 
1

这将产生你要的数组:

$result = array(
    array_merge($A[0], $B[0]), 
    array_merge($A[1], $B[1]) 
); 
+0

谢谢丹!我希望它能查看每个阵列中的“OVERALL”是否匹配,然后仅将这些匹配元素组合起来...... (此阵列中有更多项目) – compleks

+0

我不知道这意味着什么。我根本没有看到你的两个数组之间有什么“匹配”。 –

+0

我想结合数组A中的“OVERALL”和数组B中的“OVERALL”。如果两个数组中的那部分相匹配,那么他们中的许多将在完整数组中,我想将它们合并为一个,并仅显示那些那将与[1] [0]和b [1] [0]具有相同的值。希望这是有道理的.. 感谢您的所有帮助1 – compleks