Re: Sort two coupled arrays

From: Date: Wed, 07 Apr 2010 21:35:09 +0000
Subject: Re: Sort two coupled arrays
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-303887@lists.php.net to get a copy of this message
On Wed, Apr 7, 2010 at 5:02 PM, Paul M Foster <paulf@quillandmouse.com> wrote: > On Wed, Apr 07, 2010 at 04:09:47PM -0400, tedd wrote: > >> Hi gang: >> >> Here's the problem -- I want to sort and combine two arrays into one >> sorted array. Here's a real-world example: >> >> Array 1 >> ( >>     [1] => 75 >>     [2] => 31 >>     [3] => 31 >>     [4] => 31 >>     [5] => 40 >> ) >> >> Array 2 >> ( >>     [1] => Personal Email >>     [2] => Personal Phone >>     [3] => Web site >>     [4] => Text Message >>     [5] => USPS mail >> ) >> >> After the operation, I want this: >> >> Array >> ( >>     [75] => Personal Email >>     [40] => USPS mail >>     [31] => Personal Phone >>     [31] => Web site >>     [31] => Text Message >> ) [snip] > Just so I understand the way arrays work in PHP (gee, I *thought* I > did!), as you add the final three elements in the final array, won't > they overwrite each other? I was under the impression that a > *numerically* indexed array has a constraint that the numeric indexes be > unique, if not contiguous. Am I wrong? If so, please provide a > reference. Or are those "numbers" really strings? > > Paul > > -- > Paul M. Foster Array indexes have to be unique regardless of whether they are numeric or strings. <?php $a = array ( 1 => '75', 2 => '31', 3 => '31', 4 => '31', 5 => '40', ); $b = array ( 1 => 'Personal Email', 2 => 'Personal Phone', 3 => 'Web site', 4 => 'Text Message', 5 => 'USPS mail', ); $x = array_combine($a, $b); var_export($x); /* array ( 75 => 'Personal Email', 31 => 'Text Message', 40 => 'USPS mail', ) */ echo "\n"; krsort($x); var_export($x); /* array ( 75 => 'Personal Email', 40 => 'USPS mail', 31 => 'Text Message', ) */ ?> Andrew

« previous php.general (#303887) next »