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

  • Home
  • SEARCH
  • 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 7489403
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T15:14:32+00:00 2026-05-29T15:14:32+00:00

For eg. I have the following array setup that has each major US city

  • 0

For eg.

I have the following array setup that has each major US city with its human population size.

$usapopstats = array(
   array('New York',8008278),
   array('Los Angeles',3694820),
   array('Chicago',2896016),
   array('Houston',1953631),
   array('Philadelphia',1517550),
   array('Phonenix',1321045),
   array('San Diego',1223400),
   array('Dallas',1188580),
   array('San Antonio',1144646),
   array('Detroit',951270)
);

I want to sort this information by the order of their population size. But when I tried using arsort function, it sorts array by the key data, rather than the value data ie sorted by city.

So my question is how do you programme the sorting by the population size for this type of multidimensional array? Any ideas?

If the array were rewritten like this

$usapopstats = array(
    'New York'=>8008278,
    'Los Angeles'=>3694820,
    'Chicago'=>2896016,
    'Houston'=>1953631,
    'Philadelphia'=>1517550,
    'Phoenix'=>1321045,
    'San Diego'=>1223400,
    'Dallas'=>1188580,
    'San Antonio'=>1144646,
    'Detroit'=>951270
 );
 asort($usapopstats);

This will sort the array by population size.

  • 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-05-29T15:14:33+00:00Added an answer on May 29, 2026 at 3:14 pm

    You need to create a user sort function (that is the most beautiful and fastest to program solution:

    $usapopstats = array(
        array('New York',8008278),
        array('Los Angeles',3694820),
        array('Chicago',2896016),
        array('Houston',1953631),
        array('Philadelphia',1517550),
        array('Phonenix',1321045),
        array('San Diego',1223400),
        array('Dallas',1188580),
        array('San Antonio',1144646),
        array('Detroit',951270)
    );
    
    function sort_helper ($a, $b) {
        if ($a[1] > $b[1]) return 1;
        if ($a[1] == $b[1]) return 0;
        return -1;
    }
    
    usort ($usapopstats, sort_helper);
    var_dump($usapopstats);
    

    This is not the fastest code, fine for a list of say up to 1000 records, but I wouldn’t do it with an array with 100,000 entries. For each compare, the sort_helper function is being called, and since n log n compares are necessary, this means just as many function calls.

    If you need this for a long list, encode the population in the key, and ksort:

    $usapopstats = array(
        array('New York',8008278),
        array('Los Angeles',3694820),
        array('Chicago',2896016),
        array('Houston',1953631),
        array('Philadelphia',1517550),
        array('Phonenix',1321045),
        array('San Diego',1223400),
        array('Dallas',1188580),
        array('San Antonio',1144646),
        array('Detroit',951270)
    );
    
    $statshelper = array();
    foreach($usapopstats as $index=>$stat){
        $statshelper[$stat[1]."_".$index] = $stat; //also add the index to the key to avoid duplicates
    }
    
    ksort($statshelper, SORT_NUMERIC); //because the keys are strings (they contain an underscore) by default it will compare lexographically. The flag enforces numerical comparison on the part that can be converted to a number (i.e. the population)
    $usapopstats = array_values($statshelper);
    
    var_dump($usapopstats);
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have following array, that I need to operate by hand on bitmaps. const
I have the following array as3 example: var arrayDefinitionsargsAmfPhp:Array = new Array(); arrayDefinitionsargsAmfPhp['tabela'] =
Lets say I have the following array in JavaScript: var skins = new Array('Light',
I have the following set-up: A Window that has a splitView in which I
I have the following setup: An endless running PHP process that looks at a
I have the following array. <cfset ItemHasUsers = arrayNew(1)> <cfloop query=qReadData> <cfset ItemHasUsers[qReadData.currentrow][ID] =
I have the following array, $myarray[0]['first_name'] $myarray[0]['last_name'] I want to turn it into: $myarray['first_name']
I have the following array: a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] I use it for some visual
I have the following array structure: Array ( [0] => Array ( [configuration_id] =>
I have the following array, I need to reorder it by average rating descending.

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.