Question

J'ai une chaîne telle que:

  

"0123456789"

et la nécessité de diviser chaque caractère dans un tableau.

I pour l'enfer, il a essayé:

explode('', '123545789');

Mais il m'a donné l'évidence: Attention: Non delimiter défini dans exploser) ..

Comment pourrais-je venir à travers cela? Je ne vois aucune méthode de main, en particulier juste une fonction

Était-ce utile?

La solution

$array = str_split("0123456789bcdfghjkmnpqrstvwxyz");

str_split prend une option 2ème param, la longueur du morceau (par défaut 1), vous pouvez donc faire des choses comme:

$array = str_split("aabbccdd", 2);

// $array[0] = aa
// $array[1] = bb
// $array[2] = cc  etc ...

Vous pouvez aussi obtenir des parties de votre chaîne en le traitant comme un tableau:

$string = "hello";
echo $string[1];

// outputs "e"

Autres conseils

Qu'est-ce que vous essayez d'accomplir? Vous pouvez accéder aux caractères dans une chaîne comme un tableau:

$s = 'abcd';
echo $s[0];
  

imprime '

Essayez ceci:

$str = '123456789';
$char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

str_split peut faire l'affaire. Notez que les chaînes en PHP sont accessibles comme un tableau de caractères, dans la plupart des cas, vous aurez pas besoin de diviser votre chaîne en un tableau « nouveau ».

Voici un exemple qui fonctionne avec des chaînes multi-octets (UTF-8).

$str = 'äbcd';

// PHP 5.4.8 allows null as the third argument of mb_strpos() function
do {
    $arr[] = mb_substr( $str, 0, 1, 'utf-8' );
} while ( $str = mb_substr( $str, 1, mb_strlen( $str ), 'utf-8' ) );

Il peut également être fait avec preg_split() (preg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY )), mais contrairement à l'exemple ci-dessus, qui fonctionne presque aussi vite quelle que soit la taille de la chaîne, preg_split() est rapide avec de petites chaînes, mais beaucoup plus lent avec les grandes.

Essayez ceci:

    $str = '546788';
    $char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

Essayez ceci:

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

L'exemple ci-dessus sortie:

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

Si vous voulez diviser la chaîne, il est préférable d'utiliser:

$array = str_split($string);

Lorsque vous avez delimiter, qui sépare la chaîne, vous pouvez essayer,

explode('' ,$string);

Si vous pouvez passer le séparateur dans la première variable dans l'explosion tels que:

explode(',',$string);
$array = str_split("$string");

sera Actuall travail assez bien, mais si vous voulez conserver les caractères spéciaux dans cette chaîne, et que vous voulez faire une manipulation avec eux, que je n'utiliserais

do {
    $array[] = mb_substr( $string, 0, 1, 'utf-8' );
} while ( $string = mb_substr( $string, 1, mb_strlen( $string ), 'utf-8' ) );

parce que pour certains des usages personnels des mines, il a été démontré plus fiable quand il y a un problème avec des caractères spéciaux

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top