Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7972953
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T07:59:05+00:00 2026-06-04T07:59:05+00:00

i have the following array structure: | ID | CategoryName | ParentID _________________________________ 1

  • 0

i have the following array structure:

   |  ID  |  CategoryName  | ParentID 
    _________________________________
       1  |  Movies        | -1
    _________________________________
       2  |  Series        | -1
    _________________________________
       3  |  ActionMovies  |  1
    _________________________________
       4  |  HorrorMovies  |  1
    _________________________________
       5  |  ComedySeries  |  2
    _________________________________
       6  |  TVShows       | -1

My goal is to reach the following structure

Goal:

   |  ID  |  CategoryName  | ParentID 
    _________________________________
       1  |  Movies        | -1
    _________________________________
       3  |  ActionMovies  |  1
    _________________________________
       4  |  HorrorMovies  |  1
    _________________________________
       2  |  Series        | -1
    _________________________________
       5  |  ComedySeries  |  2
    _________________________________
       6  |  TVShows       | -1

Or explained in word:

  • Parent-Categories have ParentID = -1 (Example Movies)
  • All categories keep their original ID-Number
  • Should come listed directly after their ParentCategory (Example ActionMovies)
  • RootCategories without Children, come listed at the end of array. (Example TVShows)

How can i achieve this best with PHP? I have no access to the original Mysql query, so that is not an option 🙂

i have started with this code, but i am not sure it is the right path, and with minimal efforts/readability

        $tmpList = Categories_Models_Main::getAllCategories();



    $categoryData = array();
    foreach ($tmpList as $index => $categoryObject) {
        $categoryData[] = array('id' => $categoryObject->id,
                                 'CategoryName' => $categoryObject->parentId,
                                 'name' => $categoryObject->name);


    }

    ///let us assume $categoryData is original state.

    ///Beginning of manipulation and re-sorting of $tmpList


    foreach ($categoryData as $key => $value) {

        $mainId[$key] = $value['id'];

        $parentId[$key] = $value['parentId'];

    }

    array_multisort($parentId, $mainId, $categoryData);
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T07:59:07+00:00Added an answer on June 4, 2026 at 7:59 am

    Split the main array into two, one with those nodes that doesn’t have childs and other with rests of items.

    Do the sorting into array of items with array_multisort function and do too a sorting into array of categories without childs using the criteria that you want. The final step will be push the array without childs to the other.

    This form isn’t the most efficient, but to have a first approach is valid, after this, you can dispense time optimizing the code.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have the following array structure: Array ( [0] => Array ( [configuration_id] =>
I have the following array structure (linked list): struct str_pair { char ip [50]
I have the following structure: MyClass { guid ID guid ParentID string Name }
I have the following array structure in MySQL. There could be no items or
I have an array called $all_countries following this structure: Array ( [0] => Array
I have the following array structure: [[a], [b, c, [d, e]]] That could have
I have the following array with a structure within each array (see this jsfiddle
I have the following code with a structure array with data to make some
I have the following link structure for my portfolio: <?php echo $this->Html->link($post['Portfolio']['title'], array('controller' =>
I have an array of arrays, with the following structure : array(array('page' => 'page1',

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.