Ich habe eine Zeichenfolge namens $DiscountDescription
, die manchmal mit Daten wie folgt bestückt werden können:Lesen Sie die Zeichenfolge bis zum ersten Komma, dann Wert der Zeichenfolge auswerten?
A43544675, A33540055,
Oder wie folgt aus:
Grundsätzlich habe ich entweder in ihm einen Wert oder zwei Werte, getrennt durch ein Komma. Ich brauche wirklich nur den ersten Wert. Wenn es nur einen Wert gibt, hat er immer ein Komma und ein Leerzeichen dahinter, weshalb ich in meinem Code unten das Komma und Leerzeichen entferne, um die Zeichenkette auszuwerten.
Mein aktueller Code ist unten. Sie können sehen, wo ich nur dafür verantwortlich bin, wenn es einen Wert in der Zeichenfolge gibt, aber nicht beides. Also, was ich tun möchte, ist das Komma zu finden, und nehmen Sie alles auf der linken Seite des Kommas, und machen Sie das gleich .
$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);
}
}
Kannst du nicht verwenden [** explode **] (http://php.net/manual/en/function.explode.php)/[strstr] (http://php.net/ manual/de/function.strstr.php) oder so ähnlich? – FirstOne
'list ($ firstValue) = explodieren (',', $ DiscountDescription);' –
Ist es möglich, dass die Zeichenfolge mit einem Komma beginnt? '$ DiscountDescription = ', A33540055''? –