2013-02-05 21 views
5

Nói rằng tôi có chuỗi sauPHP Chuỗi thành mảng keyed bởi từ bắt đầu

$str = "once in a great while a good-idea turns great"; 

gì sẽ là giải pháp tốt nhất để tạo ra một mảng với phím mảng là đếm chuỗi các nơi từ (s) bắt đầu ?

$str_array['0'] = "once"; 
$str_array['5'] = "in"; 
$str_array['8'] = "a"; 
$str_array['10'] = "great"; 
$str_array['16'] = "while"; 
$str_array['22'] = "a"; 
$str_array['24'] = "good-idea"; 
$str_array['34'] = "turns"; 
$str_array['40'] = "great"; 
+0

Bạn đã thử gì? – Napolux

+3

http://php.net/manual/en/function.str-word-count.php – ficuscr

+0

câu hỏi hay Tôi sẽ xem –

Trả lời

7

str_word_count() với 2 làm đối số thứ hai để nhận bù trừ; và có thể bạn sẽ cần phải sử dụng đối số thứ 3 để bao gồm gạch nối cũng như chữ cái trong từ

+0

Tôi không biết về chức năng này! Thật tuyệt khi có giải pháp tích hợp! –

+1

Tôi tìm thấy một cái mới trong PHP hầu như mỗi ngày;) Đánh dấu, bổ sung tốt về các đối số 'charlist' lại. dấu nối. – ficuscr

+0

'str_word_count ($ str, 2);' đọc 'ý tưởng tốt 'như một từ http://codepad.org/Hhao41Y2 :-) –

2

Hãy thử điều này:

$array = preg_split("/ /",$str,-1,PREG_SPLIT_OFFSET_CAPTURE); 
$str_array = Array(); 
foreach($array as $word) $str_array[$word[1]] = $word[0]; 

EDIT: Chỉ cần thấy câu trả lời Mark Baker của. Có lẽ là một lựa chọn tốt hơn tôi!

+0

Tôi vừa đăng câu trả lời này quá, nhưng sau đó tôi thấy 'str_word_count'. Điều đó tốt hơn rất nhiều! –

1

Bạn có thể sử dụng preg_split (với tùy chọn PREG_SPLIT_OFFSET_CAPTURE) để chia chuỗi trên không gian, sau đó sử dụng giá trị bù trừ cho phép bạn tạo một mảng mới.

$str = "once in a great while a good-idea turns great"; 
$split_array = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE); 

$str_array = array(); 

foreach($split_array as $split){ 
    $str_array[$split[1]] = $split[0]; 
} 
10

Đơn giản như sau:

str_word_count($str, 2); 

str_word_count() làm là

str_word_count() - Return thông tin về từ được sử dụng trong một chuỗi

+0

Gotta thích được xây dựng trong các chức năng PHP! Tôi không biết về điều này :) –

+1

Tôi không biết về điều này, nhưng cho rằng PHP bao gồm mọi yêu cầu ngẫu nhiên tôi nên có chỉ googled nó. –

+0

+1 thực sự hữu ích –

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