【问题标题】:PHP combine 2 arrays and include to a 3rd arrayPHP 组合 2 个数组并包含到第 3 个数组
【发布时间】:2016-03-08 03:46:25
【问题描述】:

我有 2 个给定的数组:

数组一(即“标题”):

Array
(
    [0] => Kompatible Produkte
    [1] => Drucktechnologie
    [2] => Druckfarben
    [3] => BCP-Tintentropfenfarbe
    [4] => Temperaturbereich bei Lagerung
    [5] => Paketgewicht
    [6] => Verpackungsabmessungen (BxTxH)
)

和数组两个(它们是“值”)

Array
    (
    [0] => HP Designjet 5500, 5500ps, 5000, 5000ps
    [1] => 
    [2] => Black
    [3] => 
    [4] => -40 - 60
    [5] => 230
    [6] => 114 x 36 x 264
)

现在我想将这 2 个数组组合成一个 3 个数组... 数组 3 看起来像:

$data[] = array( 
    'sku' => '291',    
    '_type' => 'simple', 
    '_attribute_set' => 'Default', 
    '_product_websites' => 'base', 
    'name' => 'C4950A', 
    'manufacturer' => 'HP Inc.',    
    'meta_autogenerate' => 'yes', 
    'short_description' => 'HP 81', 
    'qty' => 2, 
); 

我想要这个:

$data[] = array( 
    'sku' => '291',    
    '_type' => 'simple', 
    '_attribute_set' => 'Default', 
    '_product_websites' => 'base', 
    'name' => 'C4950A', 
    'manufacturer' => 'HP Inc.',    
    'meta_autogenerate' => 'yes', 
    'short_description' => 'HP 81', 
    'qty' => 2, 

    'Kompatible Produkte' => 'HP Designjet 5500, 5500ps, 5000, 5000ps',
    'Drucktechnologie' => '',
    'Druckfarben' => 'Black',
    'BCP-Tintentropfenfarbe' => '',
    'Temperaturbereich bei Lagerung' => '-40 - 60',
    'Paketgewicht' => '230',
    'Verpackungsabmessungen (BxTxH)' => '114 x 36 x 264'
); 

数组一和二中值的数量总是相同的。我认为“for each”是可能的,但我找不到可行的解决方案......

感谢您的帮助!

【问题讨论】:

    标签: php arrays for-loop each


    【解决方案1】:

    您可以使用array_combine 和array_merge 函数轻松完成:

    $data = array_merge($data,array_combine($arr1,$arr2));
    print_r($data);
    

    【讨论】:

      【解决方案2】:

      您可以通过这种方式非常轻松地执行 foreach 循环。

      $a = ['a','b','c'];
      
      $b = ['a1','b1','c1'];
      
      $c = [
        'e' => 'e1',
        'd' => 'd1'
      ];
      
      foreach($a as $key => $value){
      
          $c[$value] = $b[$key];
      
      }
      
      print_r($c);
      

      【讨论】:

        【解决方案3】:

        请检查我在我的系统中运行的以下代码。

        $arr1 = array("Kompatible Produkte", "Drucktechnologie", "Druckfarben", "BCP-Tintentropfenfarbe", "Temperaturbereich bei Lagerung", "Paketgewicht", "Verpackungsabmessungen (BxTxH)");
        $arr2 = array("HP Designjet 5500, 5500ps, 5000, 5000ps", "", "Black", "", "-40 - 60", "230", "114 x 36 x 264");
        $arr3 = array(
            'sku' => '291',
            '_type' => 'simple',
            '_attribute_set' => 'Default',
            '_product_websites' => 'base',
            'name' => 'C4950A',
            'manufacturer' => 'HP Inc.',
            'meta_autogenerate' => 'yes',
            'short_description' => 'HP 81',
            'qty' => 2,
        );
        
        $tempArr = array_combine($arr1, $arr2);
        $result = array_merge($arr3, $tempArr);
        
        echo "<pre>";
        print_r($result);
        

        只需使用array_combine 和array_merge。

        【讨论】:

          猜你喜欢
          • 2013-08-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-06
          • 1970-01-01
          • 1970-01-01
          • 2017-12-23
          • 2013-03-08
          相关资源
          最近更新 更多