0

我有一种有趣的感觉,就像我疲惫的眼睛错过了一些简单的事情。

给定以下数组$query

Array ( [report_id] => 19 [facebook_id] => Array ( [0] => 12345678 [1] => 12345678 [2] => 12345678 [3] => 12345678 [4] => 12345678 ) ) 

(别管[facebook_id]数组的值,我只是把它放在那里作为例子)

我需要迭代并将每个值传递给一个函数。我正在使用以下 foreach 循环,当我测试它循环了多少次时,它会经过双倍。

foreach ($query as $value) {
    $report_id = $query['report_id'];
    $looper = $query['facebook_id'];
    $i = 0;
    foreach ($looper as $inner) {
        if ($i == 0) {
            $facebook_id_list = $inner;
        } else {
            $facebook_id_list = $facebook_id_list.'|'.$inner;
        }
        $i++;
    }
}

当我回显所有内容时的输出是:

19
12345678|12345678|12345678|12345678|12345678
19
12345678|12345678|12345678|12345678|12345678

我最终将$facebook_id_list在我的函数中爆炸,这就是我将多维数组连接到变量中的原因。

我错过了什么?

4

2 回答 2

1

您的循环可以替换为:

$report_id = $query['report_id'];
$facebook_id_list = implode('|', $query['facebook_id']);

没有循环,没有循环两次。

于 2013-05-24T03:02:49.830 回答
0

它循环了两次,因为您在 $query 中有 2 个元素,并且您在循环内设置了 $report_id 和 $looper,这似乎毫无意义,因为您没有在任何地方使用 $value。

祝你好运!

于 2013-05-24T02:04:10.423 回答