login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Array uitlezen

Offline ikki007 - 07/10/2008 07:49
Avatar van ikki007Gouden medailleGouden medaille

PHP ver gevorderde
Hey,

Ik heb een vrij lastig probleem, mijn variabele $char bestaat uit een array die er als volgt uit ziet:

  1. (
  2. [User] => Array
  3. (
  4. [id] => 8
  5. [username] => Azuyo
  6. [password] => 8f036369a5cd26454949e594fb9e0a2d
  7. [character_1] => 1
  8. [character_2] => 4
  9. [character_3] => -1
  10. [character_4] => -1
  11. [character_5] => -1
  12. )
  13.  
  14. [Character] => Array
  15. (
  16. [0] => Array
  17. (
  18. [id] => 1
  19. [name] => Henk
  20. [parent] => 8
  21. )
  22. [1] => Array
  23. (
  24. [id] => 4
  25. [name] => Jan
  26. [parent] => 8
  27. )
  28.  
  29. )
  30.  
  31. )


De Character.parent komt altijd overeen met User.id (hier zit een hasMany verband in -> User hasMany Character; met als foreignKey parent <-> id).
Nou wil ik de characters uitlezen op de pagina.
Dit moet als volgt gebeuren:

Personage 1: {hier overeenkomstige User.character_1 <-> Character.id}
Personage 2: {hier overeenkomstige User.character_2 <-> Character.id}

Dus:

Personage 1: Henk
Personage 2: Jan

Heeft iemand enig idee hoe ik het aan moet pakken?

Groeten Jarno

6 antwoorden

Gesponsorde links
Offline Kr4nKz1n - 07/10/2008 08:47
Avatar van Kr4nKz1n Onbekend char is een array, daarin zitten 2 array`s, User en Character?

En je leest alle users uit en wilt bij elke user de characters hebben?
Offline ikki007 - 07/10/2008 14:44
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Kr4nKz1n schreef:
char is een array, daarin zitten 2 array`s, User en Character?

En je leest alle users uit en wilt bij elke user de characters hebben?


Char is een array met 1 user en een X aantal characters (afhankelijk van het aantal characters wat de ingelogde user heeft).
Offline Stijn - 07/10/2008 14:49
Avatar van Stijn PHP expert Mhz, even proberen hé.

  1. foreach( $array['User'] as $key => $value ) {
  2.  
  3. if( preg_match("~character_\d+~" , $key ) {
  4.  
  5. foreach( $array['Character'] as $k => $v ) {
  6.  
  7. if( $value == $v['id'] )
  8. echo $v['name'];
  9.  
  10. }
  11.  
  12. }
  13.  
  14. }
Offline ikki007 - 07/10/2008 14:56
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Hmm zo is het zoals ik het nu doe inderdaad.
Ik zat even te denken, kan ik de array keys van Character niet aanpassen naar de ID van die character (id is toch uniek)?

Het wordt dan als volgt:

  1. [Character] => Array
  2. (
  3. [1] => Array
  4. (
  5. [id] => 1
  6. [name] => Henk
  7. [parent] => 8
  8. )
  9. [4] => Array
  10. (
  11. [id] => 4
  12. [name] => Jan
  13. [parent] => 8
  14. )
  15.  
  16. )


Dan kan ik het heel makkelijk uitlezen.
Ik heb even zitten zoeken maar kon er geen bestaande php functie voor vinden, iemand enig idee of die bestaat?
Offline Stijn - 07/10/2008 15:29
Avatar van Stijn PHP expert PHP.net: array_key_exists
Offline ikki007 - 07/10/2008 15:31
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Hmm ondertussen heb ik dit geschreven:

  1. function switchKey($data, $model, $key) {
  2. foreach($data[$model] as $k => $v) {
  3. $data[$model][$v[$key]] = $data[$model][$k];
  4. unset($data[$model][$k]);
  5. }
  6.  
  7. return $data;
  8. }
  9.  
  10. $char = switchKey($char, 'Character', 'id');


Werkt perfect, krijg nu terug wat ik wil.
Iemand enig idee of ik dit beter/sneller kan?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.207s