如何将两个foreach合并为一个foreach循环?

时间:2018-06-27 10:28:32

标签: php for-loop

我有两个包含姓氏和名字的变量:$fnames$lnames,我希望先显示名字,然后显示姓氏,但这不起作用

我的两个变量包含MySQL函数以从数据库获取名称

这是我的代码:

function select($row, $arr) {
    global $bdd;
    $test = $bdd - > prepare("SELECT ".$row." FROM ".$arr);
    $test - > execute();
    return $test - > fetchAll();
}

$lnames = select("lnames", "people WHERE lnames LIKE '$query%'");
$fnames = select("fnames", "people WHERE fnames LIKE '$query%'");

foreach($fnames as $fname AND $lnames as $lname) {
    echo $fname[0].$lname[0]."<br>";
}

3 个答案:

答案 0 :(得分:0)

您可以使用一个数组进行循环,并使用循环的索引访问第二个数组的值,如下所示:

foreach ($fnames as $k => $v) {
    echo $fnames[$k] . $lnames[$k] . "<br>";
}

注意:仅当两个数组中的元素数量相同时,此方法才有效。

答案 1 :(得分:0)

您需要循环一个并在另一个上使用该键。

foreach ($fnames as $key => $fname) {
    echo $fname . $lnames[$key] . "<br>";
}

答案 2 :(得分:0)

在一个查询中组合在一起,以始终获得fnameslnames

$rows = select("`fnames`,`lnames`", "people WHERE `lnames` LIKE '$query%' OR fnames LIKE '$query%'");

foreach ($rows as $row) {
    echo $row['fnames'] . $row['lnames'] . "<br>";
}
相关问题