75

私は次のような文字列を持っています:

「0123456789」

そして、文字を配列に分割する必要があります。

私は、それの地獄のために、試しました:

explode('', '123545789');

しかし、それは私に明白なことを与えました:警告:explodeで定義された区切り文字はありません) ..

どうやってこれに出くわすのでしょうか?私は手元にあるメソッド、特に関数だけを見ることができません。

4

9 に答える 9

133
$array = str_split("0123456789bcdfghjkmnpqrstvwxyz");

str_splitは、オプションの2番目のパラメーターであるチャンク長(デフォルトは1)を受け取るため、次のようなことができます。

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

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

文字列を配列として扱うことで、文字列の一部を取得することもできます。

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

// outputs "e"
于 2010-01-31T02:31:59.077 に答える
19

配列と同じように、文字列内の文字にアクセスできます。

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

' a 'を出力します

于 2010-01-31T02:34:13.593 に答える
7

これを試して:

$str = '123456789';
$char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
于 2010-01-31T02:34:48.397 に答える
5

str_splitトリックを行うことができます。PHPの文字列には、文字配列と同じようにアクセスできることに注意してください。ほとんどの場合、文字列を「新しい」配列に分割する必要はありません。

于 2010-01-31T02:34:25.273 に答える
4

これは、マルチバイト(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' ) );

preg_split()( )を使用して実行することもできますがpreg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY )、上記の例とは異なり、文字列のサイズに関係なくほぼ同じ速度で実行され、preg_split()小さい文字列では高速ですが、大きな文字列ではかなり遅くなります。

于 2015-05-27T19:50:01.373 に答える
2

これを試して:

    $str = '546788';
    $char_array = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
于 2014-12-23T06:49:10.797 に答える
1

これを試して:

$str = "Hello Friend";

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

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

上記の例では、次のように出力されます。

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
)
于 2013-02-27T14:41:45.863 に答える
0

文字列を分割する場合は、次を使用するのが最適です。

$array = str_split($string);

文字列を区切る区切り文字がある場合は、次のことを試すことができます。

explode('', $string);

次のように、分解内の最初の変数で区切り文字を渡すことができます。

explode(',', $string);
于 2015-02-21T05:38:55.567 に答える
0
$array = str_split("$string");

実際にはかなりうまく機能します、その文字列内の特殊文字を保持し、それらを操作したい場合は、を使用します

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

私の個人的な使用の一部では、特殊文字に問題がある場合に信頼性が高くなることが示されているためです。

于 2017-02-23T23:15:46.770 に答える