在循环中更改变量 PHP
Change variables in a loop PHP
我有一个非常简单的问题,我的问题是我对PHP没有太多经验。我有一个组件,其中重复了 3 列 <div class="sim-column col-sm-12 col-md-4 ">
。布局方面它们完全相同,唯一改变的是信息。有什么方法可以迭代列 3 次并更改变量 $plan_s
、$plan_m
和 $plan_l
?
<?php
extract($args)
?>
<div class="container">
<div class="row">
<div class="sim-column col-sm-12 col-md-4 ">
<?php if (!is_front_page()): ?>
<div class="sim-benefits">
<?= ( $plan_s['plan_info'] ); ?>
</div>
<?php endif ?>
<div class="sim-card-plan">
<div class="sim-card-plan-wrapper">
<div class="title"><?= ( $plan_s['plan_name'] ); ?><br>(<?= ( $plan_s['plan_description'] ); ?>)</div>
<div class="tarifa">
<div class="title"><?= ( $plan_s['gigas'] ); ?>GB</div>
<div class="description"><?php the_field('plans_tagline', 'option'); ?></div>
</div>
<div class="price-wrapper">
<div class="price">
<div class="euro"><span>€</span><span class="cost"><?= ( $plan_s['price'] ); ?></span></div>
<div class="days"><?php the_field('plans_days', 'option'); ?></div>
</div>
</div>
</div>
<div class="explain-plan" data-toggle="modal" data-target="#ModalExplainPlan1">
<?= __('Find out more', 'test') ?></div>
</div>
<a href="#" id="toggleS" class="btn btn--primary normal" data-toggle="modal"
data-target="#ModalPlan1"><?= __('Select', 'test') ?></a>
</div>
<div class="sim-column col-sm-12 col-md-4 ">
<?php if (!is_front_page()): ?>
<div class="sim-benefits">
<?= ( $plan_m['plan_info'] ); ?>
</div>
<?php endif ?>
<div class="sim-card-plan">
<div class="sim-card-plan-wrapper">
<div class="title"><?= ( $plan_m['plan_name'] ); ?><br>(<?= ( $plan_m['plan_description'] ); ?>)</div>
<div class="tarifa">
<div class="title"><?= ( $plan_m['gigas'] ); ?>GB</div>
<div class="description"><?php the_field('plans_tagline', 'option'); ?></div>
</div>
<div class="price-wrapper">
<div class="price">
<div class="euro"><span>€</span><span class="cost"><?= ( $plan_m['price'] ); ?></span></div>
<div class="days"><?php the_field('plans_days', 'option'); ?></div>
</div>
</div>
</div>
</div>
<a href="#" id="toggleM" class="btn btn--primary normal" data-toggle="modal"
data-target="#ModalPlan2"><?= __('Select', 'test') ?></a>
</div>
<div class="sim-column col-sm-12 col-md-4 ">
<?php if (!is_front_page()): ?>
<div class="sim-benefits">
<?= ( $plan_l['plan_info'] ); ?>
</div>
<?php endif ?>
<div class="sim-card-plan">
<div class="sim-card-plan-wrapper">
<div class="title"><?= ( $plan_l['plan_name'] ); ?><br>(<?= ( $plan_l['plan_description'] ); ?>)</div>
<div class="tarifa">
<div class="title"><?= ( $plan_l['gigas'] ); ?>GB</div>
<div class="description"><?php the_field('plans_tagline', 'option'); ?></div>
</div>
<div class="price-wrapper">
<div class="price">
<div class="euro"><span>€</span><span class="cost"><?= ( $plan_l['price'] ); ?></span></div>
<div class="days"><?php the_field('plans_days', 'option'); ?></div>
</div>
</div>
</div>
</div>
<a href="#" id="toggleL" class="btn btn--primary normal" data-toggle="modal"
data-target="#ModalPlan3"><?= __('Select', 'test') ?></a>
</div>
</div>
</div>
我也需要更改这部分。
<a href="#" id="toggleS" class="btn btn btn--primary normal" data-toggle="modal" data-target="#ModalPlan1"><?= __('Select', 'test') ?></a>
来自
<a href="#" id="toggleM" class="btn btn btn--primary normal" data-toggle="modal" data-target="#ModalPlan2"><?= __('Select', 'test') ?></a>
<a href="#" id="toggleL" class="btn btn btn--primary normal" data-toggle="modal" data-target="#ModalPlan3"><?= __('Select', 'test') ?></a>
在第二次和第三次迭代中,我该怎么办?
是的,将 3 个数组放入另一个数组,然后循环遍历该数组
$all3 = ['plans'=>$plan_s, 'planm'=>$plan_m, 'planl'=>$plan_l];
foreach ( $all3 as $name => $plan) {
?>
<div class="sim-column col-sm-12 col-md-4 ">
<?php if (!is_front_page()): ?>
<div class="sim-benefits">
<?= ( $plan['plan_info'] ); ?>
</div>
<?php endif ?>
<div class="sim-card-plan">
<div class="sim-card-plan-wrapper">
<div class="title">
<?= ( $plan['plan_name'] ); ?><br>(<?= ( $plan['plan_description'] ); ?>)
</div>
<div class="tarifa">
<div class="title">
<?= ( $plan['gigas'] ); ?>GB
</div>
<div class="description">
<?php the_field('plans_tagline', 'option'); ?>
</div>
</div>
<div class="price-wrapper">
<div class="price">
<div class="euro">
<span>€</span>
<span class="cost"><?= ( $plan['price'] ); ?></span>
</div>
<div class="days">
<?php the_field('plans_days', 'option'); ?>
</div>
</div>
</div>
</div>
<div class="explain-plan" data-toggle="modal" data-target="#ModalExplainPlan1">
<?= __('Find out more', 'test') ?>
</div>
</div>
<?php
$toggle = 'toggleS';
$model = '#ModalPlan1';
if ( $name == 'plans' ) {
$toggle = 'toggleS';
$model = '#ModalPlan1';
} else if ( $name == 'planm' ) {
$toggle = 'toggleM';
$model = '#ModalPlan2';
} else {
$toggle = 'toggleL';
$model = '#ModalPlan3';
}
?>
<a href="#" id="<?= $toggle ?>" class="btn btn--primary normal" data-toggle="modal" data-target="<?= $model ?>"><?= __('Select', 'test') ?></a>
</div>
<?php
}
?>
我有一个非常简单的问题,我的问题是我对PHP没有太多经验。我有一个组件,其中重复了 3 列 <div class="sim-column col-sm-12 col-md-4 ">
。布局方面它们完全相同,唯一改变的是信息。有什么方法可以迭代列 3 次并更改变量 $plan_s
、$plan_m
和 $plan_l
?
<?php
extract($args)
?>
<div class="container">
<div class="row">
<div class="sim-column col-sm-12 col-md-4 ">
<?php if (!is_front_page()): ?>
<div class="sim-benefits">
<?= ( $plan_s['plan_info'] ); ?>
</div>
<?php endif ?>
<div class="sim-card-plan">
<div class="sim-card-plan-wrapper">
<div class="title"><?= ( $plan_s['plan_name'] ); ?><br>(<?= ( $plan_s['plan_description'] ); ?>)</div>
<div class="tarifa">
<div class="title"><?= ( $plan_s['gigas'] ); ?>GB</div>
<div class="description"><?php the_field('plans_tagline', 'option'); ?></div>
</div>
<div class="price-wrapper">
<div class="price">
<div class="euro"><span>€</span><span class="cost"><?= ( $plan_s['price'] ); ?></span></div>
<div class="days"><?php the_field('plans_days', 'option'); ?></div>
</div>
</div>
</div>
<div class="explain-plan" data-toggle="modal" data-target="#ModalExplainPlan1">
<?= __('Find out more', 'test') ?></div>
</div>
<a href="#" id="toggleS" class="btn btn--primary normal" data-toggle="modal"
data-target="#ModalPlan1"><?= __('Select', 'test') ?></a>
</div>
<div class="sim-column col-sm-12 col-md-4 ">
<?php if (!is_front_page()): ?>
<div class="sim-benefits">
<?= ( $plan_m['plan_info'] ); ?>
</div>
<?php endif ?>
<div class="sim-card-plan">
<div class="sim-card-plan-wrapper">
<div class="title"><?= ( $plan_m['plan_name'] ); ?><br>(<?= ( $plan_m['plan_description'] ); ?>)</div>
<div class="tarifa">
<div class="title"><?= ( $plan_m['gigas'] ); ?>GB</div>
<div class="description"><?php the_field('plans_tagline', 'option'); ?></div>
</div>
<div class="price-wrapper">
<div class="price">
<div class="euro"><span>€</span><span class="cost"><?= ( $plan_m['price'] ); ?></span></div>
<div class="days"><?php the_field('plans_days', 'option'); ?></div>
</div>
</div>
</div>
</div>
<a href="#" id="toggleM" class="btn btn--primary normal" data-toggle="modal"
data-target="#ModalPlan2"><?= __('Select', 'test') ?></a>
</div>
<div class="sim-column col-sm-12 col-md-4 ">
<?php if (!is_front_page()): ?>
<div class="sim-benefits">
<?= ( $plan_l['plan_info'] ); ?>
</div>
<?php endif ?>
<div class="sim-card-plan">
<div class="sim-card-plan-wrapper">
<div class="title"><?= ( $plan_l['plan_name'] ); ?><br>(<?= ( $plan_l['plan_description'] ); ?>)</div>
<div class="tarifa">
<div class="title"><?= ( $plan_l['gigas'] ); ?>GB</div>
<div class="description"><?php the_field('plans_tagline', 'option'); ?></div>
</div>
<div class="price-wrapper">
<div class="price">
<div class="euro"><span>€</span><span class="cost"><?= ( $plan_l['price'] ); ?></span></div>
<div class="days"><?php the_field('plans_days', 'option'); ?></div>
</div>
</div>
</div>
</div>
<a href="#" id="toggleL" class="btn btn--primary normal" data-toggle="modal"
data-target="#ModalPlan3"><?= __('Select', 'test') ?></a>
</div>
</div>
</div>
我也需要更改这部分。
<a href="#" id="toggleS" class="btn btn btn--primary normal" data-toggle="modal" data-target="#ModalPlan1"><?= __('Select', 'test') ?></a>
来自
<a href="#" id="toggleM" class="btn btn btn--primary normal" data-toggle="modal" data-target="#ModalPlan2"><?= __('Select', 'test') ?></a>
<a href="#" id="toggleL" class="btn btn btn--primary normal" data-toggle="modal" data-target="#ModalPlan3"><?= __('Select', 'test') ?></a>
在第二次和第三次迭代中,我该怎么办?
是的,将 3 个数组放入另一个数组,然后循环遍历该数组
$all3 = ['plans'=>$plan_s, 'planm'=>$plan_m, 'planl'=>$plan_l];
foreach ( $all3 as $name => $plan) {
?>
<div class="sim-column col-sm-12 col-md-4 ">
<?php if (!is_front_page()): ?>
<div class="sim-benefits">
<?= ( $plan['plan_info'] ); ?>
</div>
<?php endif ?>
<div class="sim-card-plan">
<div class="sim-card-plan-wrapper">
<div class="title">
<?= ( $plan['plan_name'] ); ?><br>(<?= ( $plan['plan_description'] ); ?>)
</div>
<div class="tarifa">
<div class="title">
<?= ( $plan['gigas'] ); ?>GB
</div>
<div class="description">
<?php the_field('plans_tagline', 'option'); ?>
</div>
</div>
<div class="price-wrapper">
<div class="price">
<div class="euro">
<span>€</span>
<span class="cost"><?= ( $plan['price'] ); ?></span>
</div>
<div class="days">
<?php the_field('plans_days', 'option'); ?>
</div>
</div>
</div>
</div>
<div class="explain-plan" data-toggle="modal" data-target="#ModalExplainPlan1">
<?= __('Find out more', 'test') ?>
</div>
</div>
<?php
$toggle = 'toggleS';
$model = '#ModalPlan1';
if ( $name == 'plans' ) {
$toggle = 'toggleS';
$model = '#ModalPlan1';
} else if ( $name == 'planm' ) {
$toggle = 'toggleM';
$model = '#ModalPlan2';
} else {
$toggle = 'toggleL';
$model = '#ModalPlan3';
}
?>
<a href="#" id="<?= $toggle ?>" class="btn btn--primary normal" data-toggle="modal" data-target="<?= $model ?>"><?= __('Select', 'test') ?></a>
</div>
<?php
}
?>