Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Shortcut for: $foo = explode(" ", "bla ble bli"); echo $foo[0]

is there a way to get the n-th element of a splitted string without using a variable?

My PHP code always looks like this:

$foo = explode(" ", "bla ble bli");
echo $foo[0];

Is there a shorter way maybe like in Python?

print "bla ble bli".split(" ")[0]

Thanks in advance.

like image 529
KebdnK Avatar asked Dec 06 '22 22:12

KebdnK


2 Answers

This is what people should be using instead of explode most of the time:

$foo = strtok("bla ble bli", " ");

It cuts off the first string part until the first " ".

If you can't let go of explode, then the closest idiom to accomplish [0] like in Python is:

$foo = current(explode(...));

If it's not just the first element, then it becomes a tad more cumbersome:

$foo = current(array_slice(explode(...), 2));   // element [2]
like image 61
mario Avatar answered Dec 10 '22 11:12

mario


(Not really an answer per se -- others did answer pretty well)


This is one of the features that should arrive with one of the next versions of PHP (PHP 5.4, maybe).

For more informations, see Features in PHP trunk: Array dereferencing -- quoting one of the given examples :

<?php
function foo() {
    return array(1, 2, 3);
}
echo foo()[2]; // prints 3
?>
like image 42
Pascal MARTIN Avatar answered Dec 10 '22 11:12

Pascal MARTIN