我正在尝试使用来自foreach循环的名称和值填充一个空数组。我创建了一个数组$variationimages = array();
,并在循环中使用$variationimages['name']
和$variationimages['image']
保存值。
返回$variationimages
数组时,我只会得到第一项
Array
(
[name] = Wall Profile
[image] = <img src="example-image.jpg">
)
我想要的是它返回类似下面的内容,并能够通过使用类似$variationimages['Roof Profile']['image']
的东西来访问数组中的特定项目,这将返回名称为'Roof的项目的图像。个人资料”。
Array
(
[name] = Wall Profile
[image] = <img src="example-image.jpg">
),
(
[name] = Roof Profile
[image] = <img src="example-image.jpg">
),
我的代码如下:
function loop_display_variation_attribute_and_thumbnail() {
global $product;
// HERE your targeted product attribute taxonomy
$taxonomy = 'pa_product_type';
$variationimages = array();
if( $product->is_type('variable') ) {
foreach ( $product->get_available_variations() as $variation ) {
if( isset($variation['attributes']['attribute_'.$taxonomy]) ) {
// Get the "pa_product_type"
$term_name = get_term_by('slug', $variation['attributes']['attribute_'.$taxonomy], $taxonomy)->name;
$term_slug = get_term_by('slug', $variation['attributes']['attribute_'.$taxonomy], $taxonomy)->slug;
$variationimages['name'] = get_term_by('slug', $variation['attributes']['attribute_'.$taxonomy], $taxonomy)->name;
$variationimages['image'] = '<img style="display:none;" class="'.$term_slug.'-image" src="' . $variation['image']['thumb_src'] .'">';
}
}
echo "<div style='display:none'>";
print_r($variationimages);
echo "</div>";
}
}
答案 0 :(得分:1)
Shaun,只需在此处的变量上添加其他[]:
$variationimages['name'][] = get_term_by('slug', $variation['attributes']['attribute_'.$taxonomy], $taxonomy)->name;
$variationimages['image'][] = '<img style="display:none;" class="'.$term_slug.'-image" src="' . $variation['image']['thumb_src'] .'">';
在每次迭代中,它将添加新值。
欢呼;-)
---评论后编辑---
$variationimages[] = [
'name' => get_term_by('slug', $variation['attributes']['attribute_'.$taxonomy], $taxonomy)->name,
'image' => '<img style="display:none;" class="'.$term_slug.'-image" src="' . $variation['image']['thumb_src'] .'">'
];
答案 1 :(得分:0)
我认为您必须用对象或数组填充
like,您必须创建类,例如Item $one_item= new Item();
并编写如下代码:
function loop_display_variation_attribute_and_thumbnail() {
global $product;
// HERE your targeted product attribute taxonomy
$taxonomy = 'pa_product_type';
$variationimages = array();
if( $product->is_type('variable') ) {
foreach ( $product->get_available_variations() as $variation ) {
if( isset($variation['attributes']['attribute_'.$taxonomy]) ) {
// Get the "pa_product_type"
$term_name = get_term_by('slug', $variation['attributes']['attribute_'.$taxonomy], $taxonomy)->name;
$term_slug = get_term_by('slug', $variation['attributes']['attribute_'.$taxonomy], $taxonomy)->slug;
$one_item=New Item ();
$one_item=>name = get_term_by('slug', $variation['attributes']['attribute_'.$taxonomy], $taxonomy)->name;
$one_item=>image = '<img style="display:none;" class="'.$term_slug.'-image" src="' . $variation['image']['thumb_src'] .'">';
array_push($variationimages,$one_item);
}
}
echo "<div style='display:none'>";
print_r($variationimages);
echo "</div>";
}
}