2012-03-08 20 views
0

基本的には、foreachでいくつかの変数を表示するだけですが、サブメニューがあるのでネストされたループで処理する必要があります。ネストされたForeachループ(PHP)

これはリストです:

<whmcsapi> 
<action>getclientsdomains</action> 
<clientid>123</clientid> 
<totalresults>2</totalresults> 
<startnumber>0</startnumber> 
<numreturned>2</numreturned> 
<domains> 
<domain> 
    <id>1</id> 
    <userid>123</userid> 
    <orderid>1</orderid> 
    <regtype>Register</regtype> 
    <domainname>whmcsdomain.com</domainname> 
    <registrar>enom</registrar> 
    <regperiod>1</regperiod> 
    <firstpaymentamount>8.95</firstpaymentamount> 
    <recurringamount>8.95</recurringamount> 
    <paymentmethod>paypal</paymentmethod> 
    <paymentmethodname>Credit Card or Debit Card</paymentmethodname> 
    <regdate>2011-01-01</regdate> 
    <expirydate>2012-01-01</expirydate> 
    <nextduedate>2012-01-01</nextduedate> 
    <status>Active</status> 
    <subscriptionid></subscriptionid> 
    <dnsmanagement></dnsmanagement> 
    <emailforwarding></emailforwarding> 
    <idprotection></idprotection> 
    <donotrenew></donotrenew> 
    <notes></notes> 
</domain> 
... 
</domains> 
</whmcsapi> 

は、第1最初のカテゴリ です。

これは私がこれまでに達成したものですが、結果なし:

$command = 'getclientsdomains'; 
$values = array('clientid' => $_SESSION['uid']); 

# Call API 
$results = localAPI($command,$values); 

    foreach ($results as $id => $result) { 

      echo $id . " " . $result ."<br />"; 

      foreach ($result as $domains) { 

      echo $domains; 

      foreach($domains as $key => $value) { 

      echo $key . $value; 

      } 

      } 

     } 

は、これが出力されます。事前に

result success 
clientid 1 
domainid 
totalresults 1 
startnumber 0 
numreturned 1 
domains Array 
Array 

感謝。

+0

はあなたの配列の値にしますprint_r使用しようとしたことがありますか?データをループに再帰関数を使用しますか - それは配列の隠された内容を明らかにする;) –

答えて

0

function print_list($node) { 
    foreach($node as $key => $value) { 
     if(is_array($value)) 
      print_list($value); 
     else 
      echo "$key: $value\n"; 
    } 
} 
+0

Working :)素晴らしい。 もう1つの質問は、ただ1つの特定の値を出力する方法ですか? – user1253622

+0

まあ、私が正しく理解していれば、_localAPI()_関数は配列を返すので、 "clientid"から値を読み取る場合は、_ $ result ["clientid"] _ –

+0

これは: ファンクションget_registrar($ノード){ foreach($ node = $ key => $ value){ if(is_array($ value)) print_list($ value); else if($ key == "registrar"){ \t \t \t \t return $ value; \t \t \t \t} } – user1253622

関連する問題