J'ai le code suivant, qui prend un emplacement et extrait la ville et l'état / pays en dehors de celui-ci: sorties d'adresse comme: p> "Johannesburg , Sud "au lieu de" Johannesburg, Afrique du Sud ".. p> Comment puis-je modifier le code ci-dessus pour retourner la dernière partie de l'adresse de l'exemple ci-dessus? Je vois que cela implose attrape toutes les pièces avec une virgule après cela, mais comment puis-je obtenir le dernier morceau de l'adresse de contenir le nom complet ou le nom de pays? Je ne sais pas où aller d'ici. P> merci! P> p>
7 Réponses :
quelque chose comme ça?
Une réponse n'est pas complète si vous n'incluez pas d'explication de ce que votre code fait, ou fait différemment du code OPS.
Il m'étonne toujours quand un op choisit la réponse sans explications du tout.
Il suffit de prendre 2 et 3 éléments du tableau explosé
sorties: p>
Le problème avec votre code est le exploser code> que vous avez sur le dernier élément. Vous prenez fondamentalement
Afrique du Sud code>, divisez-le à l'aide de l'espace, puis prenez le premier mot
sud code> et remplacez la dernière entrée du tableau d'origine.
$address_input = "555 Test Drive, Johannesburg, South Africa";
if (strpos($address_input, ',') !== false) {
$arr = explode(", ", $address_input);
if(count($arr) >1){
//$arr[count($arr)-1] = explode(" ", $arr[count($arr)-1])[0]; // by commenting this line out, I got he results you were expecting
$address = implode(", ", array_slice($arr, -2));
}
}
Essayez ceci si le modèle de l'identité est identique que celui mentionné, Ie code> Adresse principale, Ville, Pays.
$address_input = "555 Test Drive, Johannesburg, South Africa";
print_r(implode(", ", array_slice(explode(", ", $address_input), -2)));
//Output:
//Johannesburg, South Africa
Vous pouvez utiliser substr_count pour voir s'il y a plus d'une virgule dans la chaîne.
S'il y a la sous-chaîne de la chaîne des premiers virgules +2 caractères (la virgule et l'espace blanc) avec Strows.
Cela signifie que nous ne faisons que la manipulation de chaîne et aucune conversion en tableau et retour à la chaîne.
$address_input = "555 Test Drive, Johannesburg, South Africa"; if(substr_count($address_input, ",") >1){ $address = substr($address_input, strpos($address_input, ",")+2); } echo $address; // Johannesburg, South Africa
Vous devez prendre seulement 2 éléments de l'adresse après exploser, vous pouvez supprimer le premier et utiliser implorez les éléments de tableau de repos résultat p>
Une réponse n'est pas complète si vous n'incluez pas d'explication de ce que votre code fait, ou fait différemment du code OPS.