2013-09-24 32 views
0

我有一个小的php脚本,需要产品xml值并将它们写入csv文件,但我遇到了产品选项的问题。 我已经从xml中提取了每个产品的选项,并将值添加到像这样的数组中。如何循环访问数组并在PHP中将它们连接在一起?

颜色[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。 感谢

+0

你嵌套循环后?遍历颜色;对于每种颜色,重复大小。你会发现'fputcsv()'对创建CSV本身很有用。 –

+0

@ George-Brighton感谢您的帮助,我实际上使用fwrite()来制作csv,所以我一定会看看fputcsv() – Go2Pub

回答

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) 
+0

非常感谢,工作正常。我真的搞笑了一点,而不是将结果存储在一个数组中,我只是围绕颜色和大小,并直接写入文件。可能不是最漂亮的解决方案,但它似乎很好。 – Go2Pub

相关问题