It means to "split" all the numbers in the original array into "single" digits.
The following is a function I wrote:
Copy the code The code is as follows:
function splitStrToArray_mine($array)
{
$new_array = array();
foreach($array as $value)
{
$value = (string)$value;
$len = strlen($value );
for($i = 0; $i < $len; $i ++){
array_push($new_array, $value{$i});
}
}
return $new_array;
}
Tested it and it still works. Call as follows:
Copy code The code is as follows:
//Test array
$data = array(12, 43, 87, 45, 98, 74, 83, 67, 12);
var_dump(splitStrToArray_mine ($data));
The output result is:
Copy code The code is as follows:
array(18) {
[0]=>
string(1) "1"
[1]=>
string(1) "2"
[2] =>
string(1) "4"
[3]=>
string(1) "3"
[4]=>
string(1) "8 "
[5]=>
string(1) "7"
[6]=>
string(1) "4"
[7]=>
string(1) "5"
[8]=>
string(1) "9"
[9]=>
string(1) "8"
[ 10]=>
string(1) "7"
[11]=>
string(1) "4"
[12]=>
string(1) "8"
[13]=>
string(1) "3"
[14]=>
string(1) "6"
[15]=>
string(1) "7"
[16]=>
string(1) "1"
[17]=>
string(1) "2"
}
Although the execution is good, you will be surprised if you look at the standard answer. There is only one sentence in the function, as follows:
Copy code The code is as follows:
//Standard function
function splitStrToArray($array)
{
return str_split(implode("", $array)) ;
}
So I wrote a script to test the operating efficiency gap between my own and standard functions. There is a microtime_float() function in it to provide precise time support:
Copy code The code is as follows:
//Function to measure time
function microtime_float()
{
list( $usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
//Custom function
function splitStrToArray_mine($array)
{
$new_array = array();
foreach($array as $value)
{
$value = (string)$value;
$len = strlen($value);
for($i = 0; $i < $len; $i ++){
array_push($new_array, $value{$i});
}
}
return $new_array;
}
//Standard function
function splitStrToArray($array)
{
return str_split(implode("", $array ));
}
//Test array
$data = array(12, 43, 87, 45, 98, 74, 83, 67, 12);
//Start test
$mine_start = microtime_float();
splitStrToArray_mine($data);
$mine_end = microtime_float();
//Standard function call
$sta_start = microtime_float();
splitStrToArray( $data);
$sta_end = microtime_float();
echo "The running time of your own function call is: " . (float)($mine_end - $mine_start) . " S
";
echo "The standard function call running time is: " . (float)($sta_end - $sta_start) . " S
";
$multiple = (int)((float)( $mine_end - $mine_start) / (float)($sta_end - $sta_start));
echo "The former is the latter: " . $multiple . " times! ";
Let's take a look at the output results:
The running time of your own function call is: 9.3936920166E-005 S
The standard function calling running time is: 2.69412994385E-005 S
The former is 3 times that of the latter!
If you refresh the page multiple times, you can find that the execution efficiency of the standard function is basically 3 times that of your own function! PHP's built-in functions: str_split(), implode(), so it is much faster than writing functions by yourself. Don't have an impression of the str_split() function? Let's take a look at the manual explanation:
str_split -- Convert a string to an array (Convert a string into an array)
Function description:
array str_split ( string string [, int split_length] )
Copy code The code is as follows:
Converts a string to an array. If the optional split_length parameter is specified, the returned array will be broken down into chunks with each being split_length in length, otherwise each chunk will be one character in length.
FALSE is returned if split_length is less than 1. If the split_length length exceeds the length of string, the entire string is returned as the first (and only) array element.
例 1. Example uses of str_split()
复制代码 代码如下:
$str = "Hello Friend";
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1);
print_r($arr2);
?>
Output may look like:
复制代码 代码如下:
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
)
http://www.bkjia.com/PHPjc/322521.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/322521.htmlTechArticle就是把原来的数组中的数都“拆”成“单”位的。 下面是自己写的一个函数: 复制代码 代码如下: function splitStrToArray_mine($array) { $new_array...