使用循环将外键分成单独的行

时间:2015-03-06 19:22:22

标签: php loops for-loop

在每组用户ID的开头,我需要添加一个休息时间。是否有捷径可寻?

for($i=0; $i<count($image); $i++): 
$image[$i]['userid'];
$image[$i]['id'];
endfor;

我不知道从哪里开始。输出需要如下所示:

id:2323用户:12
id:2323用户:13 id:2323用户:13 id:2323用户:13
id:2323用户:14 id:2323用户:14

目前看起来像这样: id:2323用户:12 id:2323用户:13 id:2323用户:13 id:2323用户:13 id:2323用户:14 id:2323用户:14

1 个答案:

答案 0 :(得分:2)

在向您展示我对该问题的解决方案之前,我想知道为什么有多个用户具有相同的useridid? id类型有什么区别?这对我来说似乎很奇怪,但没有进一步的麻烦,让我们来看看。

我已经构建了一小组样本数据,类似于您描述的输出。

$users = [
    ['userid' => 2323, 'id' => 12],
    ['userid' => 2323, 'id' => 13],
    ['userid' => 2323, 'id' => 13],
    ['userid' => 2323, 'id' => 13],
    ['userid' => 2323, 'id' => 14],
    ['userid' => 2323, 'id' => 14],
];

您可以使用变量来指示先前的ID是什么,并检查每次都确定是否应插入换行符。

$previous = null;

foreach($users as $info) {

    $id     = $info['id'];
    $userid = $info['userid'];

    if(!is_null($previous) && $previous !== $id) {
        echo '<br/>';
    }

    echo "id: {$userid} user: {$id} ";

    $previous = $id;

}

这应该输出以下内容:

id: 2323 user: 12  
id: 2323 user: 13 id: 2323 user: 13 id: 2323 user: 13  
id: 2323 user: 14 id: 2323 user: 14

我希望这可以帮助你,快乐编码!