Я создаю навигационную панель. В этом я получаю значение из базы данных. В моей базе данных есть три столбца: page_name
, main_page
, sub_page
.
Представлено следующим образом:
ID | Page Name | Main Page | Sub Page |
1 | Home | 1 | 0 |
2 | About | 1 | 0 |
3 | Our Work | 0 | 2 |
4 | Contact | 1 | 0 |
Main Page
то ее main_page
= 1
и sub_page
= 0
.Sub Page
то ее main_page
= 0
и In sub_page
имеет id
main_page
.Я получаю это значение из базы данных из этого запроса:
$query = "SELECT * FROM subjects";
$result = $this->db->query($query)->result_array();
И проверка моего результата, если это Main Page
или Sub Page
и добавление их в массив:
foreach($result as $row){
if ($row['main_page'] == '1') {
$main_page[] = $row['page_name'];//if main page the add them in array
}else{
$result1 = "";
$query1 = "SELECT page_name FROM subjects WHERE id = '$row[sub_page]'";//getting name of main_page
$result1 = $this->db->query($query1)->result_array();
$main_page_name = $result1['0']['page_name'];
$sub_page = $row['page_name'];
echo $main_page_name; echo "<br/>";
$main_sub[] = array('main_page' => $main_page_name, 'sub_page' => $sub_page);//if sub page add main page name and sub page
}
}
После этого он возвращает мне этот результат:
Array
(
[0] => Home
[1] => About
[2] => Contact
)
Array
(
[0] => Array
(
[main_page] => About
[sub_page] => Our Work
)
)
Как я могу объединить эти два массива, чтобы получить такой массив:
Array
(
[0] => Home
[1] => About
(
[sub_page] => Our Work
)
[2] => Contact
)
Я думаю, что вы хотите что-то вроде этого
Array(
[0] => array(
"title" => "Home"
),
[1] => array(
"title" => "About",
"sub_page" => array(
[0] => "Our Work"
)
),
[2] => array(
"title" => "Contact"
)
)
Вышеуказанный результат может быть достигнут путем выполнения этого
$pageArray = array();
foreach($result as $row){
if ($row['main_page'] == '1') {
$pageArray[$row['id']]["title"] = $row['page_name'];
}else if($row['sub_page']) {
$pageArray[$row['sub_page']]["sub_page"][] = $row['page_name'];
}
}