Question

À partir de cette chaîne:

$input = "Some terms with spaces between";

comment puis-je produire ce tableau?

$output = ['Some', 'terms', 'with', 'spaces', 'between'];
Était-ce utile?

La solution

Vous pouvez utiliser exploser , fractionné ou preg_split .

explode utilise une chaîne fixe:

$parts = explode(' ', $string);

quand split et preg_split utilisent une expression régulière:

$parts = split(' +', $string);
$parts = preg_split('/ +/', $string);

Exemple où le fractionnement basé sur une expression régulière est utile:

$string = 'foo   bar';  // multiple spaces
var_dump(explode(' ', $string));
var_dump(split(' +', $string));
var_dump(preg_split('/ +/', $string));

Autres conseils

$parts = explode(" ", $str);
print_r(str_word_count("this is a sentence", 1));

Résultats en:

Array ( [0] => this [1] => is [2] => a [3] => sentence )

Je viens de penser qu’il vaudrait la peine de mentionner que l’expression régulière affichée par Gumbo - bien qu’elle soit probablement suffisante pour la plupart des gens - pourrait ne pas intercepter tous les cas d’espace. Un exemple: Utilisation de l'expression régulière dans la réponse approuvée sur la chaîne ci-dessous:

$sentence = "Hello                       my name    is   peter string           splitter";

m'a fourni la sortie suivante via print_r:

Array
(
    [0] => Hello
    [1] => my
    [2] => name
    [3] => is
    [4] => peter
    [5] => string
    [6] =>      splitter
)

Où que, lors de l'utilisation de l'expression régulière suivante:

preg_split('/\s+/', $sentence);

m'a fourni la sortie suivante (souhaitée):

Array
(
    [0] => Hello
    [1] => my
    [2] => name
    [3] => is
    [4] => peter
    [5] => string
    [6] => splitter
)

J'espère que cela aidera tout le monde à se heurter à un obstacle similaire et à ne pas savoir pourquoi.

Juste une question, mais essayez-vous de transformer les données en JSON? Si tel est le cas, vous pouvez envisager quelque chose comme ceci:

return json_encode(explode(' ', $inputString));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top