Ik heb een string die ik om de 3 karakters wil onderverdelen in een array.

Voorbeeld

abcdefghijk:
[1] => ab
[2] => cde
[3] => fgh
[4] => ijk

Ik zou niet weten welke functie ik hiervoor moet gebruiken.
'ab' != 3 tekens.

Is daar een reden voor of is dit gewoon een foutje?
Omdat de string in dit geval uit 11 karakters bestaan kun je het niet precies in gelijke stukken onderverdelen.

Van het eerste element maakt niet uit hoeveel karakters het zien, de rest moeten het er 3 zijn.

Edit: is er ook een functie dat ik de string om kan draaien (zoals gfedcba), dan maakt het laatste element niet uit hoeveel karakters het bestaat.
Het combineren van chunk_split en explode is iets wat me zo te binnen schiet.
<?php
$tekst = 'abcdefghijk';
$data = explode(PHP_EOL,chunk_split($tekst,3,PHP_EOL) );
var_dump($data);
?>
<?php

$string = 'abcdefghijk';

$lengte = strlen($string);
$delen = floor($lengte / 3);

for($i = 1; $i < $delen + 1; $i++){

$min = (3 * $i) - 3;

echo $i.': '.substr($string,$min,3);
echo '<br />';

}
?>

Dit is slechts het begin. Dit houdt er nog geen rekening mee dat het eerste element variabel in lengte moet zijn. Maar dat kun je misschien zelf wel inbouwen.

Anders dan probeer eerst maar even, als het niet lukt help ik je wel weer verder.
Als die eerste anders moet zal jet het inderdaad even om moeten draaien.
Erg bedankt voor jullie hulp, ik kom hier wel verder mee!
<?php

$string = 'abcdefghijk';

$lengte = strlen($string);
$delen = floor($lengte / 3);

$overschot = $lengte - ($delen * 3);

$ar = array();

$ar[] = substr($string,0,$overschot);

for($i = 1; $i < $delen + 1; $i++){

$min = (3 * $i) - (3 - $overschot);

$ar[] = substr($string,$min,3);

//echo $i.': '.substr($string,$min,3);
//echo '<br />';

}

echo '<pre>';
print_r($ar);
echo '</pre>';

?>
Wauw precies wat ik zocht, danku :)

Reageren