2010-07-19 43 views
13

Làm cách nào để chuyển đổi chuỗi thành mảng? Ví dụ, tôi có chuỗi này:Chuỗi chuyển đổi PHP thành mảng

$str = 'abcdef'; 

Và tôi muốn nhận được:

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

Trong trường hợp bạn cần phải truy cập vào một cụ thể bù đắp trong chuỗi, bạn có thể làm như vậy mà không tách chuỗi. Các chuỗi có thể được sử dụng với ký hiệu Truy nhập Array. '$ str [0]' sẽ trả về 'a'. Bạn không thể sử dụng foreach hoặc bất kỳ các chức năng mảng trên nó mặc dù sau đó. – Gordon

Trả lời

6

Bạn có thể lặp qua chuỗi của bạn và trở về mỗi nhân vật hoặc một tập hợp các ký tự sử dụng chất nền trong php. Dưới đây là một vòng lặp đơn giản.

$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

Mỗi String là một mảng trong PHP

Vì vậy, chỉ cần làm

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

Từ ngữ của câu trả lời này là gây hiểu lầm – Pacerier

+7

Điều này không đúng. Thực tế là bạn có thể sử dụng [] với một chuỗi không làm cho nó thành một mảng. Hãy thử 'var_dump (is_array (" một chuỗi "));' và bạn sẽ thấy nó không phải là một mảng. – Langdi

+0

Sử dụng '[]' trên một chuỗi trên thực tế chỉ cho phép bạn truy cập vào các ký tự tại các vị trí đó, loại biến vẫn giữ nguyên và không được chuyển đổi hoặc từ một mảng nếu nó chưa được. Nó giống như cách "của họ" và "có" âm thanh giống nhau trong tiếng Anh nhưng có ý nghĩa khác nhau ... –

1

Lưu ý rằng bắt đầu với php 5,5 bạn có thể tham khảo ký tự chuỗi của chỉ số mảng, mà trong nhiều trường hợp cản trở nhu cầu cho (các) giải pháp trên.

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

giải pháp khác:

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

Các vấn đề liên quan