读取字符串直到第一个逗号,然后计算字符串的值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取字符串直到第一个逗号,然后计算字符串的值?相关的知识,希望对你有一定的参考价值。

我有一个名为$DiscountDescription的字符串,有时可以填充这样的数据:

A43544675, A33540055,

或者像这样:

A43544675, 

基本上,我可以在其中包含一个值或两个值,用逗号分隔。我真的只需要第一个值。如果只有一个值,它总是有一个逗号和一个空格,这就是为什么在我的代码下面我删除逗号和空格来评估字符串。

我目前的代码如下。如果字符串中有一个值,你可以看到我只考虑这个,但不是两者都有。所以我想要做的就是找到逗号,然后抓住逗号左边的所有内容,并使其等于$DiscountDescriptionTrimmed

$DiscountDescription = $_order->getDiscountDescription();

$DiscountDescriptionTrimmed = substr_replace($DiscountDescription ,"",-2);

if ($DiscountDescriptionTrimmed != '') {
    if (substr($DiscountDescriptionTrimmed,0,1) === "e" && strlen($DiscountDescriptionTrimmed) === 11){
        $_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
    }
    elseif (substr($DiscountDescriptionTrimmed,0,1) === "E" && strlen($DiscountDescriptionTrimmed) === 9){
        $_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
    }
    elseif (substr($DiscountDescriptionTrimmed,0,1) === "A" && strlen($DiscountDescriptionTrimmed) === 9){
        $_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
    }
    elseif (strlen($DiscountDescriptionTrimmed) === 17 && substr_count($DiscountDescriptionTrimmed,'-') === 2){
        $_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
    }
    elseif (strlen($DiscountDescriptionTrimmed) === 8 && ctype_digit($DiscountDescriptionTrimmed)){
        $_order->setDiscountDescription('Gift Cards ' . $DiscountDescription);
    }

}
答案

您可以使用strtok()来实现此目的:

$DiscountDescriptionTrimmed = strtok($DiscountDescription, ', ');

如果您需要第二个值,可以再次调用strtok()

$SecondDiscountDescriptionTrimmed = strtok(', ');
另一答案

用简单的explode()和获得0指数怎么样?

  $DiscountDescription1 = 'A43544675, A33540055,';
  $DiscountDescription2 = 'A43544675,';
  echo explode(',',$DiscountDescription1)[0];
  echo "\n";
  echo explode(',',$DiscountDescription2)[0];

但是:ぁzxswい

另一答案

第一行给出第一个值的长度,第二行提取它。

https://eval.in/922189

以上是关于读取字符串直到第一个逗号,然后计算字符串的值?的主要内容,如果未能解决你的问题,请参考以下文章

db2 对字符串进行分隔(分隔符为逗号),并计算分隔得到的数组的长度,不写自定义函数,如何做到?

扫描值直到获得C中的重要字符

从即时字符串中删除第一个逗号

根据空格和逗号分割输入字符串

请问如何在Oracle中截取第一个逗号和第二个逗号之间的字符串

从txt文件读取内容,然后用split来分割,分割条件是 逗号,还要把分割后得到的字符串赋给一个数组