在学习 PHP 时需要一些帮助:) 下面第三个 ACF 中继器中的 foreach 循环仅输出数组的最后一个值。 vardump 显示整个数组似乎是正确的。
def apply_twice(f):
def apply(x):
return f(f(x))
return apply
square_2x=apply_twice(lambda x: x*x)
square_2x(4)
# 256
答案 0 :(得分:0)
我已经在评论中回答了,但这里是固定代码:
<?php if (have_rows('product_table')) : ?>
<?php while (have_rows('product_table')) : the_row(); ?>
<?php $tcols = array(); ?>
<table>
<h3><?php the_sub_field('product_table_title'); ?></h3>
<?php if (have_rows('product_table_columns')) : ?>
<?php while (have_rows('product_table_columns')) : the_row(); ?>
<?php $product_table_column_selected_option = get_sub_field('product_table_column'); ?>
<?php if ($product_table_column_selected_option) : ?>
<th><?php echo esc_html($product_table_column_selected_option['label']); ?></th>
<?php $tcols[] = esc_html($product_table_column_selected_option['value']); ?>
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
<?php if (have_rows('product_table_products')) : ?>
<?php while (have_rows('product_table_products')) : the_row(); ?>
<?php $product_table_product = get_sub_field('product_table_product'); ?>
<?php if ($product_table_product) : ?>
<?php foreach ($tcols as $tcol) {
$tdata = get_field($tcol, $product_table_product);
echo '<tr><td>';
echo $tdata;
echo '</td></tr>';
}
?>
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
</table>
<?php endwhile; ?>
<?php endif; ?>
问题是这里的行尾有一个 ;
:<?php foreach($tcols as $tcol); {
这会停止处理。删除它可以解决问题。