【问题标题】:PHP If statement comparing an text input with a 2D array?PHP If语句将文本输入与二维数组进行比较?
【发布时间】:2015-03-30 13:45:39
【问题描述】:

我需要做一个任务,它将数组值与输入的文本值进行比较。

对于数组,代码是这样的:

<div class="wpsc-quantity-discounts">
        <table>
            <thead>
                <tr>
                    <th class="qty" colspan="2">Quantity:</th>
                    <th class="curr"><span class="hidden">Currency:<span></th>
                    <th class="price">Price:</th>
                </tr>
            </thead>
            <tbody>
                                                <tr>
                                <td class="remove"><a href="#" class="remove_line dashicons dashicons-dismiss"></a></td>
                                <td class="qty">
                                    <input type="text" size="5" value="500"/*this value*/ name="table_rate_price[quantity][]" />
                                    +                                   </td>
                                <td class="curr">USD $</td>
                                <td><input class="newCurrPrice text" value="0.48" name="table_rate_price[table_price][]" /></td>

它已经包含了我需要的变量。我需要将第一列与我的单个产品页面中输入的文本进行比较。

                            <?php if(wpsc_has_multi_adding()): ?>
                            <fieldset><legend style="float:left;"><?php _e('Quantity', 'wpsc'); ?>: &nbsp;</legend>
                            <div class="wpsc_quantity_update">
                            <input type="text" id="wpsc_quantity_update_<?php echo wpsc_the_product_id(); ?>" name="wpsc_quantity_update" size="2" value="500"/*This value*/ />
                            <input type="hidden" name="key" value="<?php echo wpsc_the_cart_item_key(); ?>"/>
                            <input type="hidden" name="wpsc_update_quantity" value="true" />
                            </div><!--close wpsc_quantity_update-->
                            </fieldset>

我需要做一个 if 语句,如果输入的文本小于第一列的数组,它将返回 false。如果有人有一个很棒的建议。我仍然是 php 的菜鸟,所以很容易:p。谢谢。

这是我现在拥有的代码。

<fieldset><legend style="float:left;"><?php _e('Quantity', 'wpsc'); ?>: &nbsp;</legend>
							<div class="wpsc_quantity_update">
							<input type="text" id="wpsc_quantity_update_<?php echo wpsc_the_product_id(); ?>" name="wpsc_quantity_update" size="2" value="500" />
							<input type="hidden" name="key" value="<?php echo wpsc_the_cart_item_key(); ?>"/>
							
                            </div><!--close wpsc_quantity_update-->
                            
                            <php? if ( table_rate_price[1][0] > wpsc_quantity_update(value)): />
 							<return <input type="hidden" name="wpsc_update_quantity" value="false" />
					<?php else: ?>\
						return <input type="hidden" name="wpsc_update_quantity" value="true" />; 
                            </fieldset>

【问题讨论】:

  • 你需要添加 loop/for/foreach 而不仅仅是[]

标签: php html arrays wordpress wordpress-ecommerce


【解决方案1】:

查看in_array 的文档我相信这就是您要找的。​​p>

这是一个帮助您入门的 sn-p:

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?>

【讨论】:

  • 所以in_array会检查值是否存在,但它是否也回调了值的实例?
  • @PeterWang YEAH 我不明白为什么不,试试看
  • @PeterWang 回复我兄弟,我可以随时调整我的答案,你到底需要什么
  • 好吧,我就这样解释。顶部是一个框,您可以在其中指定一个值作为“数量”,它与“价格”交互 与底部框一样,它是一个文本输入。底部是产品页面中的数量框。这会追溯到另一​​个框中的数量,并根据数量设置价格。我想要什么:如果他们用户输入的值低于数组中的最小值,它不会添加到购物车并抛出错误说“添加更多”这一切都在 wordpress 电子商务上
【解决方案2】:

看起来table_rate_price[1][] 应该是table_rate_price[1][0]?如果不查看该数组的外观就无法判断,请执行print_r($table_rate_price) 并向我们展示结果。

我会在比较之前将 value 转换为 int 或 float,因为所有发布数据都是 String。我假设 wpsc_quantity_update() 返回 $_POST['wpsc_quantity_update'] 值。

floatval() * 小数,如 0.48、3.14、...

intval * 整数 1、2、3 ...

if ( table_rate_price[1][0] < floatval(wpsc_quantity_update())) {
  return false;
}
return true; 

【讨论】:

  • 数组的工作方式是它是一个文本输入,根据人们添加到购物车的数量打折价格。在左侧维度上,有数量。右边有一个基于数量的价格。所以就像 50 换 0.45 美分 100 换 0.40 300 换 0.38 (...) 我需要调用其中的最低数量,然后使用它与包含更新到购物车的值的类 WPSC_quantity_update 进行比较。如果按钮低于数组中的最低数量,我想在按钮上返回 false。
  • 那么 table_rate_price[1][] 添加到数组中(array_push 的奇怪 php 快捷方式),您只需要一个听起来像的值,因此您必须在第二个插槽中提供一个索引。
  • 如果有帮助,请转到网站上的页面。 link
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-08
相关资源
最近更新 更多