Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]problem z in_array()
zdzichu
post
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 28.08.2006

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


Problem wygląda następująco.
W xmlu mam sobie pewne ustawienia, ich schemat wygląda tak:
  1. <parent>
  2. <name value="sth" />
  3. <second value="foo" />
  4. <third value="bar" />
  5. </parent>

mam teraz taki problem, że chcę sprawdzić, czy wartość z _GET`a nie równa się któremuś znacznikowi-
  1. <?php
  2. $xml = simplexml_load_file('conf.xml');
  3. $array=$xml->parent;
  4. print_r($array);
  5. //$array=each($array);
  6. if(in_array($_GET['foo'],$array)) {
  7. ?>

no i in_array() wywala błąd
Cytat
Wrong datatype for second argument
-gdy odkomentuję each to owszem, zaczyna działać, ale tylko dla pierwszego znacznika.... jak rozwiązać mój problem?
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A co wyświetla var_dump($array)?
Go to the top of the page
+Quote Post
zdzichu
post
Post #3





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 28.08.2006

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


przed zastosowaniem each($array)
Kod
object(SimpleXMLElement)#2 (3) { ["name"]=> object(SimpleXMLElement)#4 (1) { ["@attributes"]=> array(1) { ["value"]=> string(3) "sth" } } ["second"]=> object(SimpleXMLElement)#5 (1) { ["@attributes"]=> array(1) { ["value"]=> string(3) "foo" } } ["third"]=> object(SimpleXMLElement)#6 (1) { ["@attributes"]=> array(1) { ["value"]=> string(3) "bar" } } }

po:
Kod
ray(4) { [1]=> object(SimpleXMLElement)#6 (1) { ["@attributes"]=> array(1) { ["value"]=> string(3) "sth" } } ["value"]=> object(SimpleXMLElement)#6 (1) { ["@attributes"]=> array(1) { ["value"]=> string(3) "sth" } } [0]=> string(4) "name" ["key"]=> string(4) "name" }
Go to the top of the page
+Quote Post
Fipaj
post
Post #4





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


Zasada plików konfiguracyjnych pisanych w XML-u: odstępujemy od atrybutów na rzecz wartości tagów. (<tag>test</tag> zamiast <tag value="tag" />).

Poza tym, coś łatwiej wczytasz przez SimpleXML.

@edited: miałem na myśli to, że wczytywanie atrybutów przez SimpleXML jest nieco dziwne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Fipaj 5.10.2006, 17:38:03
Go to the top of the page
+Quote Post
zdzichu
post
Post #5





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 28.08.2006

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


Cytat
Zasada plików konfiguracyjnych pisanych w XML-u: odstępujemy od atrybutów na rzecz wartości tagów. (<tag>test</tag> zamiast <tag value="tag" />).

dzięki, trafna uwaga, jednak to tylko uproszczony zapis- w rzeczywistości każdy tag ma więcej wartości....
Cytat
Poza tym, coś łatwiej wczytasz przez SimpleXML.

no przecież używam simpleXML, jednak nie znam sposobu, by sprawdzić czy jakiśtam string (w tym przypadku wartość get`a) ma odpowiadający tag (przy okazji mój problem nie dotyczy wartości tagów, tylko samych ich nazw (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
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: 24.08.2025 - 16:35