Php 检查并合并两个数组 我在做什么:
我正在创建导航栏。在这种情况下,我从数据库中获取值。在我的数据库中,中有三列Php 检查并合并两个数组 我在做什么:,php,arrays,Php,Arrays,我正在创建导航栏。在这种情况下,我从数据库中获取值。在我的数据库中,中有三列页面名称,主页,子页面 表示如下: ID | Page Name | Main Page | Sub Page | 1 | Home | 1 | 0 | 2 | About | 1 | 0 | 3 | Our Work | 0
页面名称
,主页
,子页面
表示如下:
ID | Page Name | Main Page | Sub Page |
1 | Home | 1 | 0 |
2 | About | 1 | 0 |
3 | Our Work | 0 | 2 |
4 | Contact | 1 | 0 |
$query = "SELECT * FROM subjects";
$result = $this->db->query($query)->result_array();
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
)
)
- 如果它是
,那么它的主页
=主页
和1
=子主页
0
- 如果它是
,则其子页面
=主页面
,并且在0
中具有子页面
的主页面
id
ID | Page Name | Main Page | Sub Page |
1 | Home | 1 | 0 |
2 | About | 1 | 0 |
3 | Our Work | 0 | 2 |
4 | Contact | 1 | 0 |
$query = "SELECT * FROM subjects";
$result = $this->db->query($query)->result_array();
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
)
)
检查我的结果是否为主页
或子页
,并将它们添加到数组中:
ID | Page Name | Main Page | Sub Page |
1 | Home | 1 | 0 |
2 | About | 1 | 0 |
3 | Our Work | 0 | 2 |
4 | Contact | 1 | 0 |
$query = "SELECT * FROM subjects";
$result = $this->db->query($query)->result_array();
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'];
}
}
是的,这是可能的。首先查询,选择*等。。。其中子页=0。对于每个元素启动->从mytable中选择*,其中sub_page=thisid(thisid是当前元素),这样就可以通过循环来完成