0

我正在运行一个循环:

$array = $_POST['d'];

foreach($array as $a){
    print_r($a);
}

$array 包含数组(数组的数量不同),结果我得到了这个。我只想知道如何在循环中单独调用这些值。例如: $thing = 循环中 methv 的值

Array ( 
   [1173627548] => Array ( 
     [num] => 1173627548 
     [methv] => dont know 
     [q1] => - 
     [q2] => - 
     [q3] => U 
     [q4] => - 
     [comm] => 
    ) 
) 

对不起,如果我不清楚

print_r($array) 显示:

Array ( [0] => Array ( [1173627548] => Array ( [num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) [1] => Array ( [1182868902] => Array ( [num] => 1182868902 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) ) Array ( [0] => Array ( [1173627548] => Array ( [num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) [1] => Array ( [1182868902] => Array ( [num] => 1182868902 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) ) 

注意:我现在在这个数组中有 2 个数组

4

2 回答 2

0

我猜你想在 array 上循环$a,每个元素也是数组。

当您循环 $array 时,有一个项目的信息是您所说的:

Array ( 
   [1173627548] => Array ( 
     [num] => 1173627548 
     [methv] => dont know 
     [q1] => - 
     [q2] => - 
     [q3] => U 
     [q4] => - 
     [comm] => 
    ) 
) 

如果要访问methv元素,应执行以下操作:

foreach($array as $a){
    echo $a["methv"]; // this would access $array[ 1173627548 ][ "methv" ]
}

在 foreach 继续的同时,您将继续访问所有$array[ ][ "methv" ]值希望它有所帮助。


根据您的评论表明print_r($array).

首先,让我缩进它,以便我们更好地了解数组:

    Array ( 
    [0] => Array ( 
    [1173627548] => Array ( 
        [num] => 1173627548 
        [methv] => dont know 
        [q1] => - 
        [q2] => - 
        [q3] => U 
        [q4] => - 
        [comm] => 
        )
      )
    [1] => Array ( 
     [1182868902] => Array ( 
        [num] => 1182868902 
        [methv] => dont know 
        [q1] => - 
        [q2] => - 
        [q3] => U 
        [q4] => - 
        [comm] => )
        )
)
 Array (
    [0] => Array (
    [1173627548] => Array ( 
        [num] => 1173627548 
        [methv] => dont know 
        [q1] => - 
        [q2] => - 
        [q3] => U 
        [q4] => - [comm] => 
        )
     )
    [1] => Array (
     [1182868902] => Array (
        [num] => 1182868902 
        [methv] => dont know 
        [q1] => - 
        [q2] => - 
        [q3] => U 
        [q4] => -
        [comm] => 
        )
    )
) 

我猜您要打印两次,因为我们可以一个接一个地看到两个完全一致的数组。

如果您想获取[methv]项目,您需要访问:

$array[ 0 ][ 1173627548 ][ "methv" ]
$array[ 1 ][ 1182868902 ][ "methv" ]

所以你可以做的是使用foreach两次:

foreach ($array as $a) {
    foreach ($a as $v) {
        echo $v[ "methv" ];
    }
}
于 2013-03-17T23:53:55.423 回答
0

对于调试,我建议进行一些粗略但可读的调试,如下所示:

function trace($a) { print "<pre>".var_export($a, 1)."</pre>"; }
// then you can do:
trace($array);

至于您的问题,您可以像这样访问 methv 键:($array[0][1173627548]['methv']或者$array[1173627548]['methv']如果上面的跟踪是完整的 $array 变量)。

于 2013-03-17T23:03:10.577 回答