Php 使用list()或类似方法实现左手赋值,从而生成除最后一个参数以外的所有其他参数的数组

Php 使用list()或类似方法实现左手赋值,从而生成除最后一个参数以外的所有其他参数的数组,php,arrays,split,Php,Arrays,Split,这是以下问题的后续问题: 形势 $str = 'all.your.base'; list($a, $b, $c) = explode('.', $str); $a,$b和$c将相应地设置 然而,我想要实现的是: $str = 'all.your.base'; list($prev, $final) = explode('.', $str); 而之后,$final应该包含'base',$prev应该是一个如下所示的数组:['all','your'] 虽然这可以通过其他方式轻松完成,但我正在寻

这是以下问题的后续问题:

形势

$str = 'all.your.base';
list($a, $b, $c) = explode('.', $str);
$a
$b
$c
将相应地设置

然而,我想要实现的是:

$str = 'all.your.base';
list($prev, $final) = explode('.', $str);
而之后,
$final
应该包含
'base'
$prev
应该是一个如下所示的数组:
['all','your']

虽然这可以通过其他方式轻松完成,但我正在寻找一种解决方案,例如我可能不知道的
list()
,它可以作为一个单一的线性程序或使用尽可能少的代码来实现。可能涉及交错的
explode()
内爆
调用以及一些字符串反转?

好吧,这里有一个单行程序(为了可读性而缩进)将返回该命令。如果你在生产中使用过,不要告诉他们是我做的。这里有一个



我不明白为什么你已经接受了你30分钟前刚问过的重复问题的答案,却没有任何修改就发布了同样的问题。这不是同一个问题。它涉及不同的问题,需要不同的解决方案。请在表决前阅读。我的意思是,从技术上讲,这是同一个问题。您刚刚颠倒了问题的参数<代码>分解接受第三个参数的负整数<代码>$prev=分解('.',$str,-1);列表(,$final)=分解('.',$str)嗯。。。当然有。
$prev
$final
的值正是您所期望的值
$final='base'
$prev=['all','your']
不确定你所说的什么不起作用。不完全是,不。这是关于找到这个问题最简单的解决方案。在发布我的原始问题之前,我已经解决了这个问题,但是有三行代码。你给了我两个。我在找一个。使用三条线没有问题。应用您的解决方案不会有任何问题。但是这个问题仍然没有答案。啊,这很讨人喜欢!当然,这本身就是一场灾难,但这正是我想要的。非常感谢您的投入!
list($prev, $final) = [
    0 => array_slice(explode('.', $str), 0, -1),
    1 => array_pop(explode('.', $str))
];
var_dump($prev);
var_dump($final);
array(2) { [0]=> string(3) "all" [1]=> string(4) "your" }
string(4) "base"