php - 如何防止foreach PHP中的重复
问题描述
我正在尝试将客户订单备注字段移动到另一个字段组,但由于其他插件覆盖,我也需要覆盖 WooCommerce 模板文件,因此我需要移动此代码:
foreach ( $checkout->get_checkout_fields( 'order' ) as $key => $field ) :
woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
endforeach;
从:“ mytheme/woocommerce/checkout/form-shipping.php ”
到:“ mytheme/woocommerce/checkout/review-order.php ”。
现在我得到了重复的字段,如何防止 foreach 循环中的重复?
解决方案
您可以维护一个array
来跟踪您已经看到的字段,以免再次添加它们。
$fields_seen = [];
foreach ( $checkout->get_checkout_fields( 'order' ) as $key => $field ) :
if(!in_array($field, $fields_seen)) {
woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
$fields_seen[] = $field;
}
endforeach;
in_array 的参考页面:PHP in_array
推荐阅读
- python - Groupby 之后的多索引,如果只有一个组,则应用
- json - 序列化和反序列化 pandas periodIndex 系列
- json - 使用 JOOQ 将数据插入 postgres 中的 JSON 列
- javascript - 是否可以生成将在文件名中使用的浏览器名称?
- python-3.x - 如何在 Python 3 中将播放列表作为 XML 文件打开为 dict.?
- html - 尝试在 iOS 中解析 html 表
- android - Dagger2,ViewModelProvider.Factory:
使用多个 @MapKey 注释类型 - ruby-on-rails - 什么整数数据类型的范围大于 Rails 中的整数?
- javascript - Node.js - 错误:找不到模块'./router'
- angular - Chart js 不适用于 Angular 7 项目