如何在数组中循环并将它们连接在一起?

时间:2013-09-24 22:51:43

标签: php xml arrays csv

我有一个小的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的指针。 感谢

1 个答案:

答案 0 :(得分: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)