是否可以在PHP的foreach语句中嵌入list函数?

我以前考虑过这个问题,但从来没有在任何地方.我想我已经用Python完成了它,但从来没有PHP.

定义一个基本的PHP数组:

$arr = array (array(1,2,3), array(4,5,6), array(7,8,9));

然后运行此代码段:

foreach ($arr as $row)
{
    list($a, $b, $c) = $row;
    echo "$a, $b, $c <br>";
}

这是如此常见,我必须在我的PHP职业生涯中做过一百万次…但它似乎有点浪费. $row是一个临时变量,从未真正使用过,而list()=行似乎应该可以放入foreach括号中

像这样的东西(当然,这不起作用):

foreach ($arr as list($a, $b, $c) = $row)
{
    echo "$a, $b, $c <br>";
}

也不是:

foreach ($arr as list($a, $b, $c))
{
    echo "$a, $b, $c <br>";
}

有没有人想出一个很酷的快捷方式?
谢谢!

解决方法:

是的,有点儿.用这个:

while( list( $key, list( $a, $b, $c ) ) = each( $array ) ) {
    // do stuff here
}

注意列表的使用两次 – 每次返回键值对,值也是一个数组,所以我们再次使用列表.

您也可以使用list(,list($a,$b,$c)),如果需要,可以省略$key.但我认为这是一种丑陋的语法.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...