Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查并合并两个数组 我在做什么:_Php_Arrays - Fatal编程技术网

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是当前元素),这样就可以通过循环来完成