PHP взрывает первое и последнее значение массива

я все еще новичок в PHP. Итак, у меня есть переменная под названием «полное имя», и я пытался взорвать и взорвать первое и последнее значение переменной.

$fullname='Andre Filipe da Costa Ferreira';
$namepieces=explode('', $fullname);
$flname=implode('', namepieces[0], namepieces[lastvar]);
echo "Welcome".$flname;

Я был бы признателен, если бы кто-нибудь мог мне помочь! Спасибо


person André Ferreira    schedule 29.11.2013    source источник
comment
Вам не хватает $ перед namepieces в строке 3; иначе - в чем у вас проблема? Вы получаете сообщение об ошибке? Пустой экран? Неверные данные?   -  person andrewsi    schedule 29.11.2013
comment
да, поясните на примере: как будет выглядеть будет ввод, каким будет должен вывод   -  person hanzo2001    schedule 29.11.2013


Ответы (4)


Это с частями имени, разделенными пробелом, и работает с одной частью имени, например Andre:

<?php
$fullname = 'Andre Filipe da Costa Ferreira';
$namepieces = explode(' ', $fullname);
$n = count($namepieces);
if($n > 1) {
  $flname = implode(' ', array($namepieces[0], $namepieces[$n-1]));
} else {
  $flname = $namepieces[0];
}
echo "Welcome " . $flname;
//
?>

Это получает:

Welcome Andre Ferreira
person jacouh    schedule 29.11.2013

Пытаться:

$names = explode(" ", "Andre Filipe da Costa Ferreira");
printf("Welcome %s %s", current($names), end($names));

где current() получает свой первый элемент, а end() последний.

person kenorb    schedule 14.11.2015

Вам нужно использовать end($namepieces);, который возвращает значение последнего элемента или FALSE для пустого массива. Также вам не хватает $ перед именами

$flname=implode('', $namepieces[0], end($namepieces));

end()

Другой пример, взятый с php.net для получения первого и последнего элемента из массива

$items = array( 'one', 'two', 'three' );
$lastItem = end( $items ); // three
$current = current( $items ); // one
person M Khalid Junaid    schedule 29.11.2013
comment
@ThomWiggers для проблемы OP подходит лучше всего, я показал ему оба способа, используя индекс 0 или current () - person M Khalid Junaid; 29.11.2013
comment
current() – это не способ получить индекс 0: current() – это способ получить текущий элемент массива при обходе его с помощью итератора/next()/prev(). То, что сначала это индекс 0, не является причиной для использования current() для этого. - person Thom Wiggers; 29.11.2013
comment
Почему это лучше, чем использование [0]? - person Thom Wiggers; 29.11.2013
comment
@ThomWiggers, потому что его встроенная функция php - person M Khalid Junaid; 29.11.2013
comment
Также OP может также использовать reset(), тогда он гарантированно возвращает первый элемент (и сбрасывает указатель). См. также stackoverflow.com/questions/1921421/ . - person Thom Wiggers; 29.11.2013
comment
Я дал вам -1, так как я думаю, что ваш аргумент встроенной функции недействителен по сравнению с языковой конструкцией. - person Thom Wiggers; 29.11.2013
comment
@ThomWiggers, я не хочу возиться с этим, у меня есть другие дела - person M Khalid Junaid; 29.11.2013

Это лучше, я думаю

<?php
$fullname = 'Andre Filipe da Costa Ferreira';
$namepieces = explode(' ', $fullname);
$n = count($namepieces);
$n > 0 ? $flname = implode(' ', array($namepieces[0], $namepieces[$n-1])) : $flname = $namepieces[0];
echo "Welcome " . $flname;
//
?>
person Mahendra Jella    schedule 29.11.2013