Транспонировать двумерный массив значений столбцов из трех разных таблиц базы данных. ⇐ Php

Кемеровские программисты php общаются здесь
Anonymous
Транспонировать двумерный массив значений столбцов из трех разных таблиц базы данных.

Сообщение Anonymous »

У меня есть три таблицы MySQL, в которых мне нужно запросить все строки. Получив все строки из каждой таблицы, мне нужно создать многомерный массив, в котором каждый индекс этого массива будет содержать только значение из каждой таблицы. То, что у меня есть сейчас, работает. Но что-то подсказывает мне, что должен быть лучший способ добиться этого.

Код: Выделить всё

$tables = array('table_one', 'table_two', 'table_three');
$final = array();

foreach($tables as $table) {
$sql = "SELECT * FROM ".$table."";
$query = mysqli_query($con, $sql)or die(mysqli_error($con));
$num = mysqli_num_rows($query);
$i = 0;

while($row = mysql_fetch_array($query)) {
$id[$i] = $row['user_id'];

$i++;
}

for ($i = 0; $i < $num; $i++) {
if (!is_array($final[$i])) {
$final[$i] = array($id[$i]);
} else {
array_push($final[$i], $id[$i]);
}
}
}
Конечный результат выглядит примерно так

Код: Выделить всё

$final = array(
array('table_one_row_one_val', 'table_two_row_one_val', 'table_three_row_one_val'),
array('table_one_row_two_val', 'table_two_row_two_val', 'table_three_row_two_val'),
array('table_one_row_three_val', 'table_two_row_three_val', 'table_three_row_three_val')
);
Я чувствую, что это можно сделать гораздо эффективнее, но не знаю, как.

Подробнее здесь: https://stackoverflow.com/questions/255 ... ase-tables

Вернуться в «Php»