当str_split字符不符合要求时,如何取消设置行结果

时间:2017-11-02 13:22:51

标签: php string split each rows

在我的名为promo的mysql数据库表中,我在列msg行中有priceqtycode作为示例

code | msg          |  price  | qty
180  | weallwinthem |  150    | 7
180  | yeswellhappy |  520    | 15
180  | wearerunning |  100    | 10

如果所需的qty msg不需要str_split,如何取消设置qty的行结果?

E:g2

如果msg拆分为we, al, lw, in, th, emqty为7未设置qty至6 示例3

we, al, lw, in, th, em qty 6我试过了:

$sql = mysqli_query($conn, "SELECT * FROM promo WHERE code='180' LIMIT 1");
while($row = mysqli_fetch_array($sql)) {
    $msg = $row["msg"];
    $qty = $row["qty"];
    $disp = str_split($msg, 2);
    for($b = 0; $b < 2; $b++) {
        if(strlen($disp[$b]) != $qty) {
            unset($qty[$b]);
            $amt += ($row["price"] * $qty);
            $so = "uncompleted";

        } else {

            $so = "$disp[$b]";
            echo "','$so $amt";
        }
    }

感谢我的解决方案中的阅读和影响

1 个答案:

答案 0 :(得分:0)

  

如果msg split为we, al, lw, in, th, emqty为7未设置数量为6

据我从第二个例子中了解到:

我们可以编写一个&#34;计算&#34;根据{{​​1}}确定的Qty

  1. 拆分消息
  2. 计算拼接单词的数量
  3. 这应该是新的数量。 (退还)
  4. msg

    对于每一行都将运行此函数,如果行的数量是所需数量 - 不需要采取任何操作,否则,我们应该更新行的数量列。

    function getDesiredQtyBySplit($msg){
       $split = str_split($msg, 2);
       $count = count($split);
       return $count;
    }