Mal wieder Probleme mit der Ausgabe einer xml Datei

ComFreek

Mod | @comfreek
Moderator
Wie ist denn dein Koordinatensystem aufgebaut? Irgendwie erschließt sich mir die Richtungen der Achsen nicht.
 

spikaner

Quereinsteiger @ php
Das System wurde nicht von mir sondern von den machern des Games erstellt.. und das array ist auch immer anders aufgebaut, jeh nachdem wer und wie ein "rezept" gebastellt hat , allerdings ist das "grid" ansich immer gleich

Ich müsste pro Zeile/Zelle immer wieder suchen ob es im array vor kommt und fals nicht. oder wie packe ich das am geschicktesten an ?
 

ComFreek

Mod | @comfreek
Moderator
Jetzt verstehe ich das Koordinatensystem, wie konnte ich das eben nur nicht erkennen? :)

1. Ich würde erst einmal eine leere Tabelle erstellen:
PHP:
$matrix = [];
for ($y=0; $y<5; $y++) {
  $row = [];
  for ($x=0; $x<5; $x++) {
    $row[] = '';
  }
  $matrix[] = $row;
}

2. Durchlaufe nun dein Array und setze die Punkte in der Matrix:
PHP:
foreach ($arr as $coordinate) {
  $cordinateParts = explode(',', $coordinate);
  $rawPoint = [
    'x' => intval(trim($coordinateParts[0]))
    'y' => intval(trim($coordinateParts[1]))
  ];

  $realPoint = [
    'x' => $rawPoint['x'] + 2,
    'y' => $rawPoint['y'] + 2
  ];
  $matrix[$realPoint['y']][$realPoint['x']] = 'X';
}

3. Gib den HTML-Code für die Tabelle aus.
 

spikaner

Quereinsteiger @ php
Sorry für die späte Antwort, ich komme einfach nicht weiter...
Warning: main(): Cannot add element ingredient number 1 when only 0 such elements exist in G:\xampp\htdocs\7dtd\index.php on line 66

Notice: Undefined offset: 1 in G:\xampp\htdocs\7dtd\index.php on line 81
array(1) { [0]=> string(0) "" } Was: aaimalFat Menge: 11 Grid:

zeile 66 und 81

PHP:
zut[$o] = $xml->recipe->$i->ingredient->$o; // was ansich komisch ist da ich nur meine for schleife siehe oben etwas abgeändert habe damit ich keine kolission mit x und y habe
$rawPoint = [
    'x' => intval(trim($coordinateParts[0])),
    'y' => intval(trim($coordinateParts[1]))
  ]; // zeile 81

ansonsten bin ich seit Stunden mit for und foreach am rumspielen und komme auf keinen grünen Zweig, ich denke mal das der (Denk)Fehler gerade zwischen meinen Ohren sitzt.
Über nochmalige Hilfe würde ich mich sehr freuen.


anbei der momentane code ausschnitt (komischerweise keine Fehler aber defuse Ausgabe)
PHP:
                $name = xml_attribute($zeile, 'name');
                echo "Name: ".$name."<br>";
                $zutat1 = count ($xml->recipe->$i->ingredient);
               
               
                
                 for ($z = 0; $z < $zutat1; $z++){
                    $zut = $xml->recipe->$i->ingredient->$z;
                    $namezut = xml_attribute($zut, 'name');
                    $mengezut = xml_attribute($zut, 'count');
                    $grid = xml_attribute($zut, 'grid');
                   
                    // einbau in matrix..
                   
                   
                   
                    $coordinateParts = explode(',', $grid);
                    $rawPoint = [
                    'x' => intval(trim($coordinateParts[0])),
                    'y' => intval(trim($coordinateParts[1]))
                    ];
                    var_dump($coordinateParts);
                    $realPoint = [
                    'x' => $rawPoint['x'] + 2,
                    'y' => $rawPoint['y'] + 2
                    ];
                    $matrix[$realPoint['y']][$realPoint['x']] = '.$namezut[$z].';
                    // ende

Name: 10mmBullet
array(2) { [0]=> string(1) "0" [1]=> string(3) " -2" } Was: bulletTip Menge: 1 Grid: 0
0
array(2) { [0]=> string(1) "0" [1]=> string(3) " -1" } Was: gunPowder Menge: 1 Grid: ,
,
array(2) { [0]=> string(1) "0" [1]=> string(2) " 0" } Was: gunPowder Menge: 1 Grid:

array(2) { [0]=> string(1) "0" [1]=> string(2) " 1" } Was: bulletCasing Menge: 1 Grid: 1
1


mfg Spikaner
 
Zuletzt bearbeitet: