如何防止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 循环中的重复?


噜噜哒
浏览 130回答 2
2回答

摇曳的蔷薇

您可以维护一个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;

慕仙森

您可以使用 array_unique() 您的代码将如下所示:foreach ( array_unique($checkout->get_checkout_fields( 'order' )) as $key => $field ) :    woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );  endforeach;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript