Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]problem z in_array()
Forum PHP.pl > Forum > Przedszkole
zdzichu
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?
erix
A co wyświetla var_dump($array)?
zdzichu
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" }
Fipaj
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 smile.gif
zdzichu
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 smile.gif )
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.