كيف يمكنني تحويل الحكم إلى مجموعة من الكلمات؟
سؤال
ومن هذه السلسلة:
$input = "Some terms with spaces between";
وكيف يمكنني إنتاج هذه المجموعة؟
$output = ['Some', 'terms', 'with', 'spaces', 'between'];
المحلول
هل يمكن استخدام explode
و <لأ href = "http://docs.php.net/ انقسام "يختلط =" noreferrer "> split
أو preg_split
.
وexplode
يستخدم سلسلة ثابتة:
$parts = explode(' ', $string);
وحين split
وpreg_split
استخدام تعبير عادي:
$parts = split(' +', $string);
$parts = preg_split('/ +/', $string);
ومثال حيث ينقسم التعبير العادية استنادا مفيد:
$string = 'foo bar'; // multiple spaces
var_dump(explode(' ', $string));
var_dump(split(' +', $string));
var_dump(preg_split('/ +/', $string));
نصائح أخرى
$parts = explode(" ", $str);
print_r(str_word_count("this is a sentence", 1));
والنتائج في:
Array ( [0] => this [1] => is [2] => a [3] => sentence )
ومجرد التفكير أنه سوف يكون من الجدير بالذكر أن التعبير العادي البامية نشر، على الرغم من أنها سوف أكثر من المرجح أن يكون كافيا بالنسبة لمعظم قد لا قبض على جميع حالات البيضاء الفضاء. مثال: استخدام التعبير العادي في الجواب وافقت على السلسلة التالية:
$sentence = "Hello my name is peter string splitter";
وقدمت لي مع الإخراج التالي من خلال print_r:
Array
(
[0] => Hello
[1] => my
[2] => name
[3] => is
[4] => peter
[5] => string
[6] => splitter
)
وحيث كما هو الحال عند استخدام التعبير العادي التالي:
preg_split('/\s+/', $sentence);
وقدمت لي مع (المطلوب) الإخراج التالية:
Array
(
[0] => Hello
[1] => my
[2] => name
[3] => is
[4] => peter
[5] => string
[6] => splitter
)
ونأمل أن يساعد أي شخص عالق في عقبة مماثلة، والخلط لماذا.
ومجرد سؤال، ولكن تحاول أن تجعل سلمان من البيانات؟ إذا كان الأمر كذلك، فإنك قد تنظر بشيء من هذا القبيل:
return json_encode(explode(' ', $inputString));