2010-12-15 53 views
1

Je le fichier simple objet XML suivant:comment obtenir la position de simplexmlobject php

[AuthorList] => SimpleXMLElement Object 
(
    [@attributes] => Array 
     (
      [CompleteYN] => Y 
     ) 

    [Author] => Array 
     (
      [0] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => van Tricht 
        [ForeName] => M J 
        [Initials] => MJ 
       ) 

      [1] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => Nieman 
        [ForeName] => D H 
        [Initials] => DH 
       ) 

      [2] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => Bour 
        [ForeName] => L J 
        [Initials] => LJ 
       ) 

      [3] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => Boerée 
        [ForeName] => T 
        [Initials] => T 
       ) 

      [4] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => Koelman 
        [ForeName] => J H T M 
        [Initials] => JH 
       ) 

      [5] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => de Haan 
        [ForeName] => L 
        [Initials] => L 
       ) 

      [6] => SimpleXMLElement Object 
       (
        [@attributes] => Array 
         (
          [ValidYN] => Y 
         ) 

        [LastName] => Linszen 
        [ForeName] => D H 
        [Initials] => DH 
       ) 

     ) 
) 

Maintenant, je veux sortir la position d'un nom, par exemple

Position LastName Boeree est 2 0f 6

(0 est l'indice de départ)

quelqu'un sait-il cela?

Répondre

1

Utilisez une boucle for. Disons que $ AuthorList est votre objet SimpleXML

$authorsCount = count($authorList->author); 
$result=-1; 

for($i=0;$i<$authorsCount;$i++){ 
    if($authorList->author[$i]->LastName =="Boeree"){ 
$result=$i; 
break; 
} 

if($result==-1) echo "Boereee not found"; 
else echo "position LastName Boree is {$result} of {$authorsCount}"; 

EDIT: Code modifié pour utiliser l'objet simpleXML au lieu d'un tableau

+0

Salut merci ... mais je suis très nouveau pour php et la fonctionnalité de tableau, pouvez-vous s'il vous plaît me dire comment obtenir les auteurs du tableau ci-dessus dans une variable valide? – Thijs

+0

si le nom de votre objet est $ authorList cela devrait fonctionner avec $ authors = $ authorList-> author; –