PHP implode explode数组的第一个和最后一个值

3

我对PHP还是一个新手。所以我有一个叫做“full name”的变量,我想尝试将第一个和最后一个变量值分离并合并。

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

我希望有人能够帮助我!谢谢:D

第三行namepieces前面缺少$符号;否则,你遇到了什么问题?你是否收到错误消息?空白屏幕?错误的数据? - andrewsi
是的,请举个例子澄清一下:输入应该是什么样子,输出应该是什么。 - hanzo2001
5个回答

2

这个功能使用空格分隔名字,可以处理像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

2

尝试:

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

current()获取第一个元素,end()获取最后一个元素。


1
你需要使用end($namepieces);,它会返回最后一个元素的值或空数组时返回FALSE。另外,在namepieces前面要加上$。
$flname=implode('', $namepieces[0], end($namepieces));

end()

以下是从php.net获取数组中第一个和最后一个元素的另一个示例

$items = array( 'one', 'two', 'three' );
$lastItem = end( $items ); // three
$current = current( $items ); // one

2
@ThomWiggers 对于 OP 的问题,最适合的方法是向他展示两种方式,即使用索引 0 或 current()。 - M Khalid Junaid
“current()”不是获取索引0的方法:当使用迭代器/“next()”/“prev()”遍历数组时,“current()”是获取当前元素的一种方式。它恰好在开始时是索引0并不是使用“current()”的原因。 - Thom Wiggers
为什么它比使用[0]更好呢? - Thom Wiggers
1
@ThomWiggers 因为这是 PHP 内置函数。 - M Khalid Junaid
2
@ThomWiggers 我不想在这上面浪费时间,我还有其他事情要做。 - M Khalid Junaid
显示剩余2条评论

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

0

我猜这是更好的方式

<?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;
//
?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接