2010-07-19 239 views
13

如何将字符串转换为数组?举例来说,我有这个字符串:PHP将字符串转换为数组

$str = 'abcdef'; 

而且我想:

array(6) { 
    [0]=> 
    string(1) "a" 
    [1]=> 
    string(1) "b" 
    [2]=> 
    string(1) "c" 
    [3]=> 
    string(1) "d" 
    [4]=> 
    string(1) "e" 
    [5]=> 
    string(1) "f" 
} 
+6

在您需要访问一个特定的字符串偏移的情况下,你可以这样做,不要把字符串。字符串可以与Array Access表示法一起使用。 '$ str [0]'会返回'a'。尽管如此,您仍然无法使用foreach或任何数组函数。 – Gordon 2010-07-19 07:55:13

回答

6

可以遍历您的字符串,返回每个字符或一组字符在PHP中使用substr。下面是一个简单的循环。

$str = 'abcdef'; 
$arr = Array(); 

for($i=0;$i<strlen($str);$i++){ 
    $arr[$i] = substr($str,$i,1); 
} 

/* 
OUTPUT: 
$arr[0] = 'a'; 
$arr[1] = 'b'; 
$arr[2] = 'c'; 
$arr[3] = 'd'; 
$arr[4] = 'e'; 
$arr[5] = 'f'; 
*/ 
6

每个字符串是PHP

数组

所以根本就

$str = 'abcdef'; 
echo $str[0].$str[1].$str[2]; // -> abc 
+3

这个答案的措辞是误导 – Pacerier 2013-08-05 05:36:47

+7

这是不正确的。事实上,你可以使用[]与字符串不会使它成为一个数组。尝试'var_dump(is_array(“一个字符串”));'你会看到它不是一个数组。 – Langdi 2013-09-04 15:33:04

+0

在字符串上使用'[]'实际上只是让您访问这些位置上的字符,变量类型保持不变,并且不会将其转换为阵列或从阵列转换为阵列。就像“他们”和“那里”在英语中的表现方式一样,但有不同的含义...... – 2014-06-26 03:26:55

1

注意,使用PHP 5.5开始,你可以通过数组的下标是指字符串中的字符,在大多数情况下防止需求对于上面的解决方案。

$str = 'abdefg'; 
echo $str[4]; // output: e 
0

其他解决方案:

$string = 'abcdef'; 

$arr = []; 

for($i=0;$i<strlen($string);$i++){ 
    $arr[] = substr($string,$i,1); 
} 
0
<?php 

$str = "Hello Friend"; 

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

print_r($arr1); 
echo "<br/>"; 
print_r($arr2); 

?> 

more info !!