0

I have text with multiple lines. Say, its 100 lines. Every four lines together make a single block of data. So, I want to explode data into array after every 4 lines. is there any thing in PHP to achieve this thing?

3
  • 1
    Lines in a text file or a string? Commented May 15, 2014 at 14:38
  • 1
    Yes, loops and conditions. Commented May 15, 2014 at 14:38
  • Also an example of the text. Commented May 15, 2014 at 14:40

2 Answers 2

4

Not directly. But you can split first the data and then re-implode() it in chucks of four:

$split = explode("\n", $data);
while (!empty($split)) {
    $array[] = implode("\n", array_splice($split, 0, 4));
}
Sign up to request clarification or add additional context in comments.

1 Comment

@nl-x yes, you're right, explode is guaranteed to return an array with a least one element if valid input is passed.
0

Here you go:

$tmp = explode("\n", $data);
$fours = array();
for($i = 0; $i < count($tmp); $i++)
    if ($i % 4 == 0)
        $fours[count($fours)] = $tmp[$i];
    else
        $fours[count($fours) - 1] .= "\n" . $tmp[$i];

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.