Jump to content

sorting arrays


ToonMariner

Recommended Posts

Sure this is easy BUT i just can't find the solution.

OK i have 2 arrays.

arr1 = 5,7,1,4,6,3,2;

arr2 = 3,5,4,7;

I want to use the order of values in arr1 to sort the order of arr2.

the result would yield:-

arr2 = 5,7,4,3

any help appreciated - and I'm sure I will be wearing a dunce hat when someone shows how simple it is!!!!!

Brain just not working today....
Link to comment
https://forums.phpfreaks.com/topic/14366-sorting-arrays/
Share on other sites

this is what ive got so far:

[code]
<?php
$arr1 = array('5','7','1','4','6','3','2');
$arr2 = array('3','5','4','7');

foreach($arr2 as $check)
{
  $i = 0;
  while($i < count($arr1))
  {
      if($check == $arr1[$i]){
  $newarray[$i] = $check;
}
$i++;
}
}
ksort($newarray);
print_r($newarray);
?>
[/code]

The output from that is:
Array ( [0] => 5 [1] => 7 [3] => 4 [5] => 3 )

Im just trying to figure out how to re-do the keys so you have 0,1,2,3 as keys instead. Im sure theres a function somewhere...
Link to comment
https://forums.phpfreaks.com/topic/14366-sorting-arrays/#findComment-56668
Share on other sites

might be an easier way, but i created a second array with keys and used array_combine:

[code]
<?php
$arr1 = array('5','7','1','4','6','3','2');
$arr2 = array('3','5','4','7');

foreach($arr2 as $check)
{
  $i = 0;
  while($i < count($arr1))
  {
      if($check == $arr1[$i]){
  $newarray[$i] = $check;
}
$i++;
}
}
ksort($newarray);
$i=0;
while($i< count($newarray)){
  $keys[$i]= $i;
  $i++;
}
$newarray = array_combine ($keys, $newarray);
print_r($newarray);

?>
[/code]
Link to comment
https://forums.phpfreaks.com/topic/14366-sorting-arrays/#findComment-56677
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.