Транспонировать двумерный массив значений столбцов из трех разных таблиц базы данных.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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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