In javascript, var myStringToArray = myString.split(''); is perfectly acceptable.
But in PHP, $My_String_To_Array = explode('', $My_String); throws an error:
Warning: explode() Empty delimiter
The PHP manual (http://php.net/manual/en/function.explode.php) explains:
If delimiter is an empty string (""), explode() will return FALSE.
So what should I be using in contemporary PHP instead of explode('', $My_String)?
So far, the alternatives I can see are:
split("", $My_String) - deprecated as of PHP 5.3.0str_split($My_String)preg_split('//', $My_String)Seven years ago, str_split() would have been the correct alternative to use.
But is str_split() still in contemporary usage or should I only be looking at preg_split() ?
Or should I be looking at something else?
If dealing with multi-byte UTF-8 strings you should use:
$array = preg_split('//u', $My_String,-1, PREG_SPLIT_NO_EMPTY);
Otherwise you can just use:
$array = str_split($My_String);
The reason is noted in the manual:
str_split() will split into bytes, rather than characters when dealing with a multi-byte encoded string.
Starting from PHP version 7.4 the mbstring equivalent of str_split was added so you can now use:
$array = mb_str_split($my_string);
I think str_split is what you are after
str_split — Convert a string to an array
<?php
$arr = str_split("Hello");
?>
will produce
Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
}
the first parameter is required.
explode(separator,string,limit)
[separator]: required;
[string]: required;
[limit]: alternative.
An explode function with a void [separator] is meaningless.
That's all.O(∩_∩)O~