2010-06-21 9 views
1

J'ai un tableau qui ressemble à ceci, je veux chercher un saleref et l'obtenir pour me donner la clé en PHP, j'ai essayé d'utiliser array_search mais je ne reçois rien en retour. Sinon, je veux juste afficher les autres valeurs dans le même tableau que le salesref recherché s'il y a une meilleure façon.PHP recherche tableau retour clé

Array 
    (
     [xml] => Array 
      (
       [sale] => Array 
        (
         [0] => Array 
          (
           [saleref] => 305531 
           [saleline] => 1 
           [date] => 
           [team] => WH 
           [manifest] =>  0 
           [qty] =>  1 
           [order_status] => 
          ) 

         [141] => Array 
          (
           [saleref] => 306062 
           [saleline] => 1 
           [date] => 
           [team] => 
           [manifest] =>  0 
           [qty] =>  1 
           [order_status] => RECEIVED 
          ) 

         [1] => Array 
          (
           [saleref] => 306062 
           [saleline] => 2 
           [date] => 
           [team] => WH 
           [manifest] =>  0 
           [qty] =>  1 
           [order_status] => 
          ) 
+0

il semble que vous essayez de rechercher une liste xml correcte? – MANCHUCK

+0

il a été converti en un tableau –

Répondre

2
<?php 
function searchSale($needle) 
{ 
    foreach ($data['xml']['sale'] as $id => $sale) 
    { 
     if ($sale->saleref == $needle) 
     { 
      return $id; 
     } 
    } 
    return null; 
} 
?> 
+0

devrait être '$ sale ['saleref']' car ils sont tous des tableaux, pas des objets. – nickf

+0

ah merci nickf et merci sjoerd pour la solution –

0
function findkey($val, &$array) 
{ 
    $keys=array(); 
    foreach ($array as $key=$try) { 
    if ($try===$val) { 
     $keys[]=$key; 
    } else if (is_array($try)) { 
     $contained=findkey($val, $try); 
     if (count($contained)) { 
      $keys[]=$contained; 
     } 
    } 
    } 
    return $keys; 
} 

C.