Php 读取字符串直到第一个逗号,然后计算字符串的值?
我有一个名为Php 读取字符串直到第一个逗号,然后计算字符串的值?,php,string,magento,Php,String,Magento,我有一个名为$DiscountDescription的字符串,有时可以用如下数据填充该字符串: A43544675, A33540055, A43544675, 或者像这样: A43544675, A33540055, A43544675, 基本上,我可以有一个值或两个值,用逗号分隔。我真的只需要第一个值。如果只有一个值,它后面总是有一个逗号和一个空格,这就是为什么在下面的代码中,我要删除逗号和空格来计算字符串 我现在的代码如下。如果字符串中只有一个值,而不是两个值,那么您可以看到我
$DiscountDescription
的字符串,有时可以用如下数据填充该字符串:
A43544675, A33540055,
A43544675,
或者像这样:
A43544675, A33540055,
A43544675,
基本上,我可以有一个值或两个值,用逗号分隔。我真的只需要第一个值。如果只有一个值,它后面总是有一个逗号和一个空格,这就是为什么在下面的代码中,我要删除逗号和空格来计算字符串
我现在的代码如下。如果字符串中只有一个值,而不是两个值,那么您可以看到我只考虑了这一点。所以我要做的是找到逗号,抓住逗号左边的所有内容,并使其等于$discountdescription
$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(', ');
使用simple
explode()
并获取0
th索引如何
$DiscountDescription1 = 'A43544675, A33540055,';
$DiscountDescription2 = 'A43544675,';
echo explode(',',$DiscountDescription1)[0];
echo "\n";
echo explode(',',$DiscountDescription2)[0];
演示:第一行给出第一个值的长度,第二行提取它
$length = strpos($DiscountDescription, ',') + 1;
$DiscountDescriptionTrimmed = substr($DiscountDescription, 0, $length);
你不能使用/或类似的东西吗?
list($firstValue)=explode(“,”,$DiscountDescription)代码>字符串是否可能以逗号开头<代码>$DiscountDescription=',A33540055'
?可以。没问题。