Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML][PHP]Znak równości, Dziwny problem
Meferot
post
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 31.08.2009

Ostrzeżenie: (0%)
-----


Mam problem z porównaniem dwóch elementów z pliku XML. Próbowałem już na kilkanaście sposobów, jednak za każdy razem skrypt nie dostrzega podobieństwa w rekordach. Teraz próbuje metodą odnalezienia danego elementu w ciągu, mój kod wygląda tak:
  1. $monsterCount = count($xml->spawn[$i]->monster);
  2. if($monsterCount > 0) {
  3. for($y = 0; $y < $monsterCount; $y++) {
  4. $monster[$y] = $xml->spawn[$i]->monster[$y]->attributes()->name;
  5. if($y > 0) {
  6. $string = $monsters;
  7. $find = $monster[$y];
  8. $pos = strpos($string, $find);
  9. if($pos == true) {
  10. $monsters = $monsters."taki już był";
  11. }
  12. else $monsters = $monster[$y];
  13. }
  14. else $monsters = $monster[$y];
  15. }
  16. }

Chodzi o to, aby skrypt pomijał te elementy które już wcześniej się pojawiły i nie dopisywał ich do zmiennej $monsters.
Fragment pliku XML wygląda tak:
  1. <spawn centerx="481" centery="509" centerz="2" radius="1">
  2. <monster name="Undead Dragon" x="-1" y="-1" z="2" spawntime="60"/>
  3. <monster name="Undead Dragon" x="0" y="-1" z="2" spawntime="60"/>
  4. </spawn>
  5. <spawn centerx="475" centery="516" centerz="2" radius="1">
  6. <monster name="Undead Dragon" x="0" y="-1" z="2" spawntime="60"/>
  7. <monster name="Undead Dragon" x="1" y="1" z="2" spawntime="60"/>
  8. </spawn>
  9. <spawn centerx="701" centery="656" centerz="2" radius="1">
  10. <monster name="Giant Spider" x="0" y="-1" z="2" spawntime="60"/>
  11. <monster name="Giant Spider" x="1" y="1" z="2" spawntime="60"/>
  12. </spawn>
  13. <spawn centerx="958" centery="749" centerz="2" radius="5">
  14. <monster name="Orc Berserker" x="2" y="-1" z="2" spawntime="60"/>
  15. <monster name="Orc Leader" x="-3" y="0" z="2" spawntime="60"/>
  16. <monster name="Orc Warlord" x="-1" y="0" z="2" spawntime="60"/>
  17. <monster name="Orc Warlord" x="1" y="2" z="2" spawntime="60"/>
  18. </spawn>


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


strpos - takie wielkie czerwone okno z napisem "WARNING" - zwróć na nie uwagę.
Go to the top of the page
+Quote Post
Meferot
post
Post #3





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 31.08.2009

Ostrzeżenie: (0%)
-----


Niestety nadal nie potrafię tego zrozumieć, nawet potrójny znak równości nie rozróżnia czy zmienne są takie same czy nie...

Nawet przy najprostszej instrukcji warunkowej:
  1. if($monster[($y-1)] === $monster[$y])

Wywala, że zmienne są różne, mimo że ewidentnie są takie same!



Ten post edytował Meferot 17.05.2011, 12:06:18
Go to the top of the page
+Quote Post
olechafm
post
Post #4





Grupa: Zarejestrowani
Postów: 125
Pomógł: 2
Dołączył: 8.10.2010
Skąd: Poniemieckie miasto przesiedleńców

Ostrzeżenie: (0%)
-----


a jakie wartości podstawiłeś pod te zmienne

if($monster[($y-1)] === $monster[$y])
Go to the top of the page
+Quote Post
Meferot
post
Post #5





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 31.08.2009

Ostrzeżenie: (0%)
-----


Cytat(olechafm @ 17.05.2011, 14:06:00 ) *
a jakie wartości podstawiłeś pod te zmienne

if($monster[($y-1)] === $monster[$y])


Sprawdź pierwszy post.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 03:52