将字符串拆分为较小的块

I have a string of length 50k approx. example of string

hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl OR hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl OR hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl OR kdjkdjkdjkj OR djdldkkldkkkldklddklkldkl OR jdkdkjdjkjkdjkdjkdjkjkjkjkdkjkdjkjkdjkjk OR hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl hdjhjdhjdhdhjdhjhdldkklkdklkllkldkldldkl kldkldkl OR llldlkdl dkld ldk

Now if i use explode('OR', $str);, it will gives me array of length 500 or more than 501.

But i need array of 10 only. last array may be long. Does anybody have idea. how to do this.. I need OR word within string itself. also i have 20k OR in a string

Thanks

str_split($str, strlen($str) / 10);

This should work

explode('OR', $string, 10);

The third argument is the maximum number of array items in the array, the last one will hold the rest of the string remaining.

If you do need the OR inside your strings, you should use @Alix Axel's answer instead.

Here you go (demo):

preg_split('~(?<!\b20k\b) OR\b~', $str, 10);

I suggest next time, you state your whole, complete problem clearly.