login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Data verkrijgen uit array

Offline BladiN - 11/10/2004 20:47
Avatar van BladiNGouden medailleGouden medaille

Grafische gevorderde
Ja weer een vraagje van mijn kant 
Ik ben dus ondertussen verder aan het scripten en zit nu weer ergens vast

Dit is een huidig stukje code:
  1. <?php
  2. foreach($this->units as $units) {
  3.  
  4. $unit = mysql_query("SELECT * FROM aw_units WHERE tag = '" . $units . "'") or die(mysql_error());
  5. $target = mysql_fetch_assoc($unit);
  6.  
  7. if($data[$units] != 0) {
  8.  
  9. }
  10.  
  11. }
  12. ?>


Dit controlleert wat voor units de tegenstander allemaal heeft, als voorbeeld neem ik 'hop' en 'fri'.
Nu heeft de aanvaller aangevallen met 'mbo' en 'gal', dat wordt hier gepakt:
  1. <?php
  2. foreach($_POST['number'] as $i => $number) {
  3.  
  4. $unit = mysql_query("SELECT * FROM aw_units WHERE tag = '" . $_POST['unit'][$i] . "'") or die(mysql_error());
  5. $data = mysql_fetch_assoc($unit);
  6.  
  7. print($number);
  8. print($data['name']);
  9.  
  10. }
  11. ?>


Nu zit aan elke unit in dezelfde array (hier een stukje van de array):
  1. [nav] => Array
  2. (
  3. [name] => Naval Units
  4. [units] => Array
  5. (
  6. [gal] => Galley
  7. [att_gal] => Array
  8. (
  9. [bui] => Buildings
  10. [nav] => Naval Units
  11. )
  12.  
  13. [car] => Caravel
  14. [att_car] => Array
  15. (
  16. [bui] => Buildings
  17. )
  18.  
  19. [fri] => Frigate
  20. [att_fri] => Array
  21. (
  22. [art] => Artilleries
  23. [cav] => Cavalries
  24. [inf] => Infantries
  25. )
  26.  
  27. )
  28.  
  29. )


Zoals je ziet staat hier att_fri(tegenstander) en att_gal(aanvaller)

Nu wil ik controleren of in att_fri eenzelfde attribuut voorkomt als in att_gal, dit moet zo geloof ik:
  1. <?php
  2. function ctrl_units ($array, $animal) {
  3.  
  4. $var = false;
  5. foreach($array as $key => $value) {
  6.  
  7. if(in_array($value, $animal)) {
  8.  
  9. $var = true;
  10.  
  11. }
  12. }
  13.  
  14. return $var;
  15.  
  16. }
  17.  
  18. if(ctrl_units($var1, $var2)) {
  19. echo "Unit, jep";
  20. }
  21. ?>


Alleen wat is nu het probleem? Het probleem is dus die att_fri en att_hop te vergelijken met beide att_gal en att_mbo. Hoe krijg ik dit voor elkaar?

3 antwoorden

Gesponsorde links
Offline BladiN - 12/10/2004 18:32 (laatste wijziging 12/10/2004 18:32)
Avatar van BladiN Gouden medailleGouden medaille

Grafische gevorderde
Ok we zijn op het punt gekomen dat dit me gelukt is. Maar nu een volgend probleem. Het gaat weer om hetzelfde stukje array als hierboven. En nu wil ik kijken of de 'key' nav bijvoorbeeld in deze array voorkomt, ik probeer het nu met in_array maar dan gaat hij natuurlijk op Naval Units (de value) kijken, hoe kan ik op de key kijken?

  1. <?php
  2. if($data[$units] != 0 && in_array($target['type'], $types[$tag['type']]['units']['att_' . $tag['tag']])) {
  3.  
  4. echo $tag['name'] . " can attack " . $target['name'] . "<br />";
  5.  
  6. }
  7. ?>
Offline DRUNK - 12/10/2004 18:49
Avatar van DRUNK PHP gevorderde probeer het eens met: array_key_exists()
http://nl.php.n...exists.php/
Offline BladiN - 12/10/2004 18:52
Avatar van BladiN Gouden medailleGouden medaille

Grafische gevorderde
Dank je daar was ik naar opzoek
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.245s