根据Google产品Feed(https://support.google.com/merchants/answer/7052112)的要求,我已有一个包含产品的PHP数组,其中包含各个字段... ID /标题/描述/链接/图像链接等。等等。
我的问题是,对于服装,Google希望为每种尺寸提供单独的记录。我的数组包含“大小”字段作为逗号分隔的列表,例如6,8,10,12,14或XS,S,M,L,XL等,等等。
因此,在创建供稿(一个文本文件,当前除了大小字段问题外,目前可以正常输出),对于每种大小,我需要复制每个ID,如果该字段中的大小超过1,请对每个大小进行复制,然后对字段进行操作这样一点(忽略所有将保持不变的重复字段),而不是单个记录:-
id size item group id 52 6,8,10,12,14,16,18,20,22,24,26
我有11条记录,项目组ID将是ID,ID后面附加大小,并且size字段只有一个(按原始记录的顺序排列,所以:-
id size item group id 52-6 6 52 52-8 8 52 . .. ... 52-24 24 52 52-26 26 52
这只是一种产品。。。有很多,每种都有多种尺寸,但是在产品数组中都采用相同的格式。
一如既往,非常感谢任何帮助/指针/解决方案!
ETA:
事实证明,我实际上没有$ product数组中的大小,它们是在foreach中的查询,用于在当前状态下构建供稿。
$ result是获取所有产品的查询...
$count = $dbA->count($result); for ($f = 0; $f < $count; $f++) { $record = $dbA->fetch($result); $productSizes = ""; $result2 = $dbA->query("SELECT $ExtraFieldsValues.content From $ExtraFields, $ExtraFieldsValues Where $ExtraFields.name = 'size' and $ExtraFields.extraFieldID = $ExtraFieldsValues.extraFieldID and $ExtraFieldsValues.prodID =".$record["prodID"]." Order By $ExtraFieldsValues.position"); $count2 = $dbA->count($result2); for ($f2 = 0; $f2 < $count2; $f2++) { $record2 = $dbA->fetch($result2); $productSizes .= ",".$record2["content"]; } if (strlen($productSizes) > 0){ $productSizes = substr($productSizes,1); } echo $productSizes . '<br/>'; }
产品数组包含我上面引用的其他字段以及许多其他字段:-
Array ( [prodID] => 52 [title] => widget [description] => for removing things [price] => 1.00 GBP . .. ... )
但不包括项目组ID字段,对于每个产品,应将其添加为空白或如上填充。
我不确定这是否使它更容易或更难?
*更多编辑*
遍历数组以获取大小,后来又使feed输出混乱了,所以我改为将其更改为foreach。该计划是针对第一个foreach循环,根据需要操纵产品数组,然后执行一次单独的foreach遍历现在正确的数组以输出提要。这是我需要解决的问题:-
foreach ($result as $key => $thisProduct) { echo $thisProduct["prodID"] . '<br/>'; $thisproductSizes = ""; $sizesResult = $dbA->query("SELECT $ExtraFieldsValues.content From $ExtraFields, $ExtraFieldsValues Where $ExtraFields.name = 'size' and $ExtraFields.extraFieldID = $ExtraFieldsValues.extraFieldID and $ExtraFieldsValues.productID =".$thisProduct["prodID"]." Order By $ExtraFieldsValues.position"); $sizesCount = $dbA->count($sizesResult); for ($sf2 = 0; $sf2 < $sizesCount; $sf2++) { $sizesRecord = $dbA->fetch($sizesResult); $thisproductSizes .= ",".$sizesRecord["content"]; } if (strlen($thisproductSizes) > 0){ // there's at least one size so needs to be dealt with $thisproductSizes = substr($thisproductSizes,1); // do stuff here to make one product into many, each with item_group_id = prodID, and id = prodID-xx (size), and only one size } else { $thisproductSizes = ""; } echo $thisproductSizes . '<br />'; }
但是,考虑一下,如果只有1个大小是可以的,那就是如果有2个或更多的大小就会出现问题...
根据Google产品Feed(https://support.google。的要求,ID /标题/描述/链接/图像链接等,我已经拥有一个包含各种字段的现有PHP产品。 com / ...
您可以应用此foreach循环: