2010-06-21 115 views
1

我有一個看起來像這樣的數組,我想搜索一個saleref並讓它給我在PHP中的關鍵,我試過使用array_search,但我沒有得到任何回報。或者,我只是想顯示與salesref搜索相同的數組中的其他值,如果有更好的方法。PHP搜索數組返回鍵

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

它看起來像你正在試圖尋找一個XML列表是否正確? – MANCHUCK 2010-06-21 13:09:15

+0

它已被轉換爲數組 – 2010-06-21 13:31:43

回答

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

應該是'$ sale ['saleref']',因爲它們都是數組,而不是對象。 – nickf 2010-06-21 13:46:38

+0

啊謝謝你nickf並感謝sjoerd的解決方案 – 2010-06-21 14:51:15

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.