[PHP] array sorteren aan de hand van 2e array.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Lenaco
  • Registratie: Juni 2003
  • Laatst online: 27-05-2022
Ik probeer een array te sorteren aan de hand van een 2e array die op basis van 'id's' met elkaar gelinkt zijn, alleen wil me dit niet zo lukken.
Ik kan geen informatie op het net vinden, geen idee of het er niet is, of dat ik het gewoon niet kan vinden...

array 1:
id - array2id
1 - 1
2 - 2
3 - 1
4 - 3
5 - 2

array 2:
id - naam
1 - aap
2 - noot
3 - mies

nu moet het id van array 1 worden gesorteerd aan de hand van de, op alfabet gesorteerde, naamlijst van array 2.

Dit zou het dus moeten worden:
array1 id - array2 naam
1 - aap
3 - aap
4 - mies
2 - noot
5 - noot

Heeft iemand een idee?

J

P.s. Voor mij lijkt deze vraag logisch, maar ja, er zijn genoeg mensen op de wereld die me niet snappen.
Als ik het een en ander moet verduidelijken hoor ik het graag.

[ Voor 16% gewijzigd door Lenaco op 10-07-2006 21:54 ]


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Dit werkt, maar zit je wel nog met die lelijke global:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$arr1 = array(1 => 1,
              2 => 2,
              3 => 1,
              4 => 3,
              5 => 2);

$arr2 = array(1 => 'aap',
              2 => 'noot',
              3 => 'mies');

function cmp($a, $b)
{
  global $arr2;
  if ($arr2[$a] == $arr2[$b]) {
      return 0;
  }
  return ($arr2[$a] < $arr2[$b]) ? -1 : 1;
}

  uasort($arr1, 'cmp');

  print_r($arr1);

[ Voor 76% gewijzigd door Grijze Vos op 10-07-2006 22:09 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Waarom gebruik je überhaupt twee losse arrays als deze inhoudelijk van elkaar afhankelijk zijn? Waarom niet één tweedimensionaal array?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

PHP:
1
2
3
4
5
foreach($array1 as $key => $value) }
    $newarray[$key] = $array2[$value];
}

asort($newarray);

[ Voor 10% gewijzigd door Brakkie op 10-07-2006 22:05 ]

Systeem | Garmin Connect


Acties:
  • 0 Henk 'm!

  • Lenaco
  • Registratie: Juni 2003
  • Laatst online: 27-05-2022
-NMe- schreef op maandag 10 juli 2006 @ 22:03:
Waarom gebruik je überhaupt twee losse arrays als deze inhoudelijk van elkaar afhankelijk zijn? Waarom niet één tweedimensionaal array?
Omdat array1 vast staat, en array 2 geregeld aangepast moet worden, en ik geen zin heb om continu bewerkingen op de hele db los te laten, dan liever alleen die ene bewerking op de entry in array 2.

Ik heb alweer een paar extra puzzelstukjes, thx!
Morgen maar eens verder puzzelen.

J