Как получить два foreach в один цикл foreach? - PullRequest
0 голосов
/ 27 июня 2018

У меня есть две переменные, которые содержат фамилии и имена: $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 голосов
/ 27 июня 2018

Вам нужно зациклить один и использовать ключ на другом.

foreach ($fnames as $key => $fname) {
    echo $fname . $lnames[$key] . "<br>";
}
0 голосов
/ 27 июня 2018

Объедините оба, где в одном запросе, чтобы получить fnames и lnames всегда вместе

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

foreach ($rows as $row) {
    echo $row['fnames'] . $row['lnames'] . "<br>";
}
0 голосов
/ 27 июня 2018

Вы можете использовать один массив для обхода и использовать индекс цикла для доступа к значениям 2-го массива, например:

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

ПРИМЕЧАНИЕ. Это будет работать только в том случае, если в обоих массивах одинаковое количество элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...