كيف يمكنني تحويل الحكم إلى مجموعة من الكلمات؟

StackOverflow https://stackoverflow.com/questions/618729

  •  03-07-2019
  •  | 
  •  

سؤال

ومن هذه السلسلة:

$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));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top