En ik wil deze in 2'en splitsen op de eerste "-" van achteren, dus:
string1 = "foo-bar-baz-"
string2 = "foobar"
Hoe doe ik dit dan op de snelste manier? Kan ik daar alleen substr voor gebruiken, of zijn er nog alternatieven waarbij ik in 1x de string in 2'en kan "knippen"?
Maar kan het niet in 1x, in 1 handeling bedoel ik? Is het niet mogelijk om aan te geven dat je de string wil splitten en dat het 1e deel in string 1 komt en het 2e deel in string2? Of eventueel in 2 array keys?
Er bestaat dus niet een functie waarmee je kunt zeggen, knip een string in 2'en op positie x en stop deel 1 in string 1 en deel 2 in string 2 (of eventueel in 2 array keys)?
Dan komt explode() het dichtst in de buurt, maar moet je het geheel toch nog in wat extra functies nesten als je er één regel PHP van wilt maken. Persoonlijk vind ik het dan duidelijker — en vooral onderhoudsvriendelijker — om de stappen uit te schrijven.
Het volgende is de kortste one-liner die ik me kan bedenken zonder zelf een functie te maken. Merk wel op dat het ten koste gaat van de leesbaarheid en je commentaar toe zou moeten voegen. Iets meer kleine simpele stapjes is over het algemeen beter te volgen (en daardoor te onderhouden) dan weinig stappen die niet goed te volgen zijn.
<?php
$str = 'foo-bar-baz-foobar';
$arr = array_map('strrev', array_reverse(explode('-', strrev($str), 2)));
?>
Hahaha... wat een creatieve oplossingen. Hmmm... dan toch maar in stapjes. Ik vind het raar dat php geen "knip" functie heeft waarbij je kunt zeggen de eerste x karakters van string foo komen in string1 en de rest komt in string2. Lijkt me toch een handige functionaliteit.