Например:
echo explode('@',$var); //but only echoing element 1 or 2 of the array?
Вместо:
$variable = explode('@',$var); echo $variable[0];
Спасибо.
Начиная с PHP 5.4 вы можете написать:
echo explode('@', $var)[0];
В более ранних версиях PHP вы можете только добиться поведения с помощью трюков:
echo current(explode('@', $var)); // get [0] echo next(explode('@', $var)); // get [1]
Возвращение элемента в произвольное положение невозможно без временной переменной.
Вот простая функция, которая может привести в порядок ваш код, если вы не хотите использовать переменную каждый раз:
function GetAt($arr, $key = 0) { return $arr[$key]; }
Назовите:
echo GetAt(explode('@', $var)); // get [0] echo GetAt(explode('@', $var), 1); // get [1]
В версиях PHP, поддерживающих разыменование массива, вы можете использовать следующий синтаксис:
echo explode('@', $var)[0];
Если нет, вы можете использовать list()
:
list($foo) = explode('@', $var);
Вышеприведенный оператор присваивает первое значение взорванного массива переменной $foo
.
До PHP 5.4 вы могли бы сделать это:
echo array_shift(explode('@', $var));
Это отразится на первом элементе массива, созданного в результате взрыва. Но он делает это без ошибок проверки выхода взорваться, что не является идеальным.
list
можно также использовать следующим образом:
list($first) = explode('@', $var); list(,$second) = explode('@', $var); list(,,$third) = explode('@', $var);
Просто используйте reset
как это
echo reset(explode('@', $var));