0

我有一个小的 php 脚本,它获取产品 xml 值并将它们写入 csv 文件,但我在使用产品选项时遇到了问题。我从 xml 中提取了每个产品的选项,并将值添加到这样的数组中。

颜色[1] 颜色[2] 颜色[3]

尺寸[1] 尺寸[2] 尺寸[3]

现在我需要制作看起来像这样的csv;

颜色[1],尺寸[1]

颜色[1],尺寸[2]

颜色[1],尺寸[3]

颜色[2],尺寸[1]

颜色[2],尺寸[2]

等等......

下面是我用来获取信息的代码。进入数组,我什至不确定这是最好的方法,但它似乎工作正常。

        $i=0;
foreach($_item->options->Color as $_color){
        $color[$i] = $_color;
        $i++;
        }
        print $sku;
    foreach($color as $i=>$value){
        print ' - $color[' . $i . '] holds ' . $value;
        }
echo '<br>';

        $i=0;
foreach($_item->options->Size as $_size){
        $size[$i] = $_size;
        $i++;
        }
        print $sku;
    foreach($size as $i=>$value){
        print ' - $size[' . $i . '] holds ' . $value;
        }
echo '<br>';

目前我只是打印出产品 $sku 和选项的价值。我喜欢一些关于如何让 $color[] 和 $size[] 循环以获取所有可能的组合并将它们写入 csv 的指针。谢谢

4

1 回答 1

0
$colors = array("color1", "color2", "color3");

$sizes  = array("size1", "size2", "size3");

$result = array();
foreach($colors as $cKey => $c) {
    foreach($sizes as $s) {
        $result[][$c] = $s;
    }
}

var_dump($result);

输出

    array (size=9)
  0 => 
    array (size=1)
      'color1' => string 'size1' (length=5)
  1 => 
    array (size=1)
      'color1' => string 'size2' (length=5)
  2 => 
    array (size=1)
      'color1' => string 'size3' (length=5)
  3 => 
    array (size=1)
      'color2' => string 'size1' (length=5)
  4 => 
    array (size=1)
      'color2' => string 'size2' (length=5)
  5 => 
    array (size=1)
      'color2' => string 'size3' (length=5)
  6 => 
    array (size=1)
      'color3' => string 'size1' (length=5)
  7 => 
    array (size=1)
      'color3' => string 'size2' (length=5)
  8 => 
    array (size=1)
      'color3' => string 'size3' (length=5)
于 2013-09-25T00:17:46.083 回答