2010-07-19 40 views
13

Dizgi bir diziye nasıl dönüştürebilirim? Örneğin, ben bu dizesi vardır:PHP diziyi diziye dönüştürme

$str = 'abcdef'; 

Ve almak istiyorum:

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

, sen dize bölme olmadan yapabilirsiniz. Dizeler Dizi Erişim gösterimi ile kullanılabilir. 'str [0]', 'a' döndürür. Öyleyse foreach veya bunun üzerindeki dizi işlevlerinden herhangi birini kullanamazsınız. – Gordon

cevap

6

ve her bir karakteri veya karakter kümesi döndürmek php içinde substr kullanarak. Aşağıda basit bir döngüdür.

$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

Her dize Yani basitçe php 5.5 ile başlayan çoğu durumda ihtiyacını engeller, dizi indeksleri tarafından dize karakterleri referans verebilmek

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

O 'dizideki gibi bir şey oluşturur ([0] => 'string')' Bu doğru değildir. Bir dizeyle [] kullanabiliyor olmanız gerçeği bir dizi yapmaz. Var_dump (is_array ("string")) 'i deneyin; bir dizinin OLMADIĞINI görürsünüz. – Pacerier

+7

yanıltıcıdır – Langdi

+0

kullanma 'aslında bir dize sadece o pozisyonlarda karakterlere erişim sağlar üzerinde []' değişken türüdür ve zaten değilse veya bir diziden dönüştürülmez olarak kalır. "Onların" ve "orada" nın İngilizce'de nasıl aynı şekilde konuştuğunu, ancak farklı anlamları olduğunu ... –

1

Not yapmak

PHP

bir Array Yukarıdaki çözüm (ler) için.

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

Diğer çözüm: Eğer dizede ofset özgü erişmesi gereken durumda

$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 !!

İlgili konular