2010-07-19 234 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 !!