首页 > 解决方案 > 我的产品变体以数组形式出现 我需要调节它们的功能

问题描述

让我举个例子吧

这些都来找我了。

Array
(
    [Renk] => Array
    (
        [0] => Altın Sarısı 
        [1] => Altın Sarısı 
        [2] => Altın Sarısı 
        [3] => Altın Sarısı 
        [4] =>  Gümüş 
        [5] =>  Gümüş 
        [6] =>  Gümüş 
        [7] =>  Gümüş 
        [8] =>  Siyah 
        [9] =>  Siyah 
        [10] =>  Siyah 
        [11] =>  Siyah 
        [12] =>  Beyaz
        [13] =>  Beyaz
        [14] =>  Beyaz
        [15] =>  Beyaz
    )
    [İnç] => Array
    (
        [0] => 15 
        [1] =>  16 
        [2] =>  17 
        [3] =>  18
        [4] => 15 
        [5] =>  16 
        [6] =>  17 
        [7] =>  18
        [8] => 15 
        [9] =>  16 
        [10] =>  17 
        [11] =>  18
        [12] => 15 
        [13] =>  16 
        [14] =>  17 
        [15] =>  18
    )

)

我应该这样做。

[0] => Array
    (
        [Renk] => Altın Sarısı 
        [İnç] => 15 
    )

[1] => Array
    (
        [Renk] => Altın Sarısı 
        [İnç] =>  16 
    )

[2] => Array
    (
        [Renk] => Altın Sarısı 
        [İnç] =>  17 
    )

[3] => Array
    (
        [Renk] => Altın Sarısı 
        [İnç] =>  18
    )

[4] => Array
    (
        [Renk] => Gümüş 
        [İnç] => 15 
    )

[5] => Array
    (
        [Renk] => Gümüş 
        [İnç] =>  16 
    )

[6] => Array
    (
        [Renk] => Gümüş 
        [İnç] =>  17 
    )

[7] => Array
    (
        [Renk] => Gümüş 
        [İnç] =>  18
    )

[8] => Array
    (
        [Renk] => Siyah
        [İnç] => 15 
    )

[9] => Array
    (
        [Renk] => Siyah
        [İnç] =>  16 
    )

[10] => Array
    (
        [Renk] => Siyah
        [İnç] =>  17 
    )

[11] => Array
    (
        [Renk] => Siyah
        [İnç] =>  18
    )

[12] => Array
    (
        [Renk] => Beyaz
        [İnç] => 15 
    )

[13] => Array
    (
        [Renk] => Beyaz
        [İnç] =>  16 
    )

[14] => Array
    (
        [Renk] => Beyaz
        [İnç] =>  17 
    )

[15] => Array
    (
        [Renk] => Beyaz
        [İnç] =>  18
    )

我用它,但它变得太多了。

function get_combinations($arrays) {
  $result = array(array());
  foreach ($arrays as $property => $property_values) {
    $tmp = array();
    foreach ($result as $result_item) {
      foreach ($property_values as $property_value) {
        $tmp[] = array_merge($result_item, array($property => $property_value));
      }
    }
    $result = $tmp;
  }
  return $result;
}

标签: phparraysmultidimensional-array

解决方案


您不需要为此目的编写长代码。只需迭代数组的一个键并创建具有目标结构的新数组。

$newArr = [];
foreach ($arr['Renk'] as $key=>$item){
    $newArr[] = [
        "Renk" => $item,
        "İnç" => $arr['İnç'][$key]
    ];
}

在dmeo中检查结果


此外,如果数组的键是动态的,请使用底部显示的代码

$keys = array_keys($arr);
$newArr = [];
foreach ($arr[$keys[0]] as $key=>$item){
    $newArr[] = [
        $keys[0] => $item,
        $keys[1] => $arr[$keys[1]][$key]
    ];
}

在演示中检查结果


推荐阅读