我已经获取了变量的print_r并希望从中获取一些信息,这是print_r的预览,
WC_Product_Variation Object
(
[variation_data] => Array
(
[attribute_pa_colour] => blue
[attribute_pa_size] => large
)
[sku] => BLUEANDLARGE345
[stock] => 345
)
所以,如果我使用以下代码:
<td><?php echo $product->sku; ?></td>
<td><?php echo $product->stock; ?></td>
这将回应:
BLUEANDLARGE345
345
我如何回应variation_data
数组?
我尝试过以下操作,输出为'Array':
<td><?php echo $product->variation_data; ?></td>
修改
@ pp19dd
所以我尝试了以下内容:
<td><?php echo implode(", ", $product->variation_data ); ?></td>
现在的输出是:
blue, Test Product Test Product 123
, pink Test Product Test Product 456
yellow, Test Product Test Product 789
blue, large Test Product Test Product 345
代码似乎在之前和之后添加逗号,不需要示例。
蓝色,粉红色,黄色,e.t.c是[variation_data]
数组。
答案 0 :(得分:2)
如果要回显数组的结构,可以再次使用print_r:
print_r($product->variantion_data);
如果要回显数组的各个元素:
foreach($product->variantion_data as $value)
echo $value;
或者,如果您想按键访问元素:
echo $product->variation_data['attribute_pa_size'];
答案 1 :(得分:0)
<td><?php echo implode(", ", $product->variation_data ); ?></td>
编辑:如果您需要粒度位,可以直接定位它们:
<td><?php echo $product->variation_data['attribute_pa_colour']; ?></td>
编辑#2:由于数据可能为空,您需要将其过滤掉。一种快速而肮脏的方法:
<?php echo implode(", ", array_diff( $product->variation_data, array("") ) ) ?>
技巧: array_diff()应该会显示数组之间的差异。因此,如果一个数组只是一个空字符串,则此方法将为您提供非空的所有内容。
如果空数据中有随机空格,则不能使用 implode()。