У меня есть три таблицы MySQL, которые мне нужно запросить для всех строк. Получив все строки из каждой таблицы, мне нужно создать многомерный массив, в котором каждый индекс этого массива содержит только значение из каждой таблицы. То, что я сейчас работаю. Но что-то говорит мне, что должен быть лучший способ добиться этого.Сортировка массивов PHP
$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')
);
я получаю кишки порубочных, что это может быть сделано гораздо более эффективно, но я не знаю, как.
Спасибо,
Lance
Используйте MySQL JOIN вместо трех отдельных таблиц. http://dev.mysql.com/doc/refman/5.1/en/join.html –
Да, но нет никаких общности между значениями строк в таблицах – Lance
Если нет какой-либо общности, почему вы извлекаете три таблицы? Это абсолютно логично. –