1

I have two while loops to get two different values as array those are called heading and menu.In that i want a result like menu array values are inside heading array.

This is my code:

        $heading = array();
        $menu = array();
        $stmt_heading = $this->conn->prepare("SELECT main_heading_name,sub_heading_name FROM `selected_food_main_sub_heading` WHERE branch_id = ? AND brand_id = ? AND business_id = ? ");
        $stmt_heading->bind_param("iii",  $branch_id, $brand_id,$business_id);
        $stmt_heading->execute();
        $result = $stmt_heading->get_result();
        while ($row = $result->fetch_assoc()) 
        {
            array_push($heading, $row);
            $stmt_menu = $this->conn->prepare("SELECT * FROM `menu_deatils` WHERE main_heading_name = ? AND sub_heading_name = ? ");
            $stmt_menu->bind_param("ss",  $row['main_heading_name'], $row['sub_heading_name']);
            $stmt_menu->execute();
            $result_menu = $stmt_menu->get_result();
            while ($row_menu = $result_menu->fetch_assoc()) 
            {
                array_push($menu, $row_menu);
            }
            $data['menu_list'] = $menu;
            array_push($heading, $data);
            $stmt_menu->close();

        }
        return $heading;

Heading array values:

[
      {
        "main_heading_name": "Quick Bites",
        "sub_heading_name": "Biryani & Rice"
      },
      {
        "main_heading_name": "Bites",
        "sub_heading_name": "Biryani & Rice"
      }
]

Menu array values:

{
    "menu_list": [{
            "main_heading_name": "Quick Bites",
            "sub_heading_name": "Biryani & Rice"
        },
        {
            "main_heading_name": "Quick Bites",
            "sub_heading_name": "Biryani & Rice"
        }
    ]
}

I want a result like:

  [
      {
            "main_heading_name": "Quick Bites",
            "sub_heading_name": "Biryani & Rice",
            "menu_list": [{
                    "main_heading_name": "Quick Bites",
                    "sub_heading_name": "Biryani & Rice"
                },
                {
                    "main_heading_name": "Quick Bites",
                    "sub_heading_name": "Biryani & Rice"
                }
            ]
        },
        {
            "main_heading_name": "Bites",
            "sub_heading_name": "Biryani & Rice",
            "menu_list": [{
                    "main_heading_name": "Quick Bites",
                    "sub_heading_name": "Biryani & Rice"
                },
                {
                    "main_heading_name": "Quick Bites",
                    "sub_heading_name": "Biryani & Rice"
                }
            ]
        }
    ]

How can do? Thanks in advance!

2
  • 2
    Would array_merge($array1, $array2); help you? Commented May 19, 2017 at 13:55
  • array_merge gives merged array values.I want Second array inside first array and second array as it is. Commented May 19, 2017 at 14:01

1 Answer 1

1
$FullArray1 = $menu + $heading;
$FullArray2 = array_merge($menu, $heading);

Both of these will give the intended result.

http://php.net/manual/en/function.array-merge.php

Edit: In response to your comment

array_push($menu, $heading);
Sign up to request clarification or add additional context in comments.

1 Comment

I don't want merged array i need second array inside first array

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.