PHP 需要嵌套数组列表

PHP nested array list needed

我正在尝试通过 foreach 循环两个值。我在 php.net 上找到了一个很好的例子,但是当我尝试实现它时,它显示为错误代码。

$array = [
    [1, 2],
    [3, 4],
];
foreach ($array as list($a, $b)) {
    echo "A: $a; B: $b\n";
}

应该给你:

A: 1; B: 2
A: 3; B: 4

http://php.net/manual/en/control-structures.foreach.php

出于我的目的,我正在尝试这样做:

$array = [
    [$csal, Salary],
    [$ccar, Car],
];
foreach ($array as list($a, $b)) {
    if($$a==NULL){$$ap="$b";
}
}

我想等于

 if($csal==NULL){$csal="Salary";
 }
 if($ccar==NULL){$ccarp="Car";
 }

我试过用 ( 换掉括号,但没有成功。

foreach 循环 return,对于每一行,键索引和值。

因此,在您的第一个示例中:

foreach( $array as list( $a, $b ) )

在第一个循环中 $a 是 0(第一个键)并且 $b[1, 2],第一个子数组。

你必须使用嵌套循环:

foreach( $array as list( $key, $val ) )
{
    foreach( $val as list( $key1, $val1 ) )
    {
        echo "[$key][$key1]: $val1";
    }
}

或者——如我所愿——以老式的方式:

foreach( $array as $key => $val )
{
    foreach( $val as $key1 => $val1 )
    {
        (...)
    }
}

显然,你的第二个例子也有同样的误解。

$array = [
[1, 2],
[3, 4],
];
foreach ($array as list($a, $b)){}

in $array,你也使用了错误的语法来赋值 你在 foreach 函数 中所做的是你将数组的值分配给一个名为 list() 的函数,这是错误的...

您需要像这样编辑您的代码

$array = array(array(1,2),array(3,4));
foreach ($array as $list) { 
   echo "A:$list[0] B:$list[1]";
}

希望这会有所帮助...