2011-01-22 7 views
1

ある情報を選ぶには、私のSOAP応答(私はWebサービスを制御することはできません)解析アレイとちょっと同じ

[Names] 
[Name] 
    [ID] => GH01 
    [First] => Greg 
    [Last] => Hobb 
    [DateAvailable] =>12.04.2011 
    [Contactable] => true 

[Name]  

    [ID] => JM01 
    [First] => James 
    [Last] => Murr; 
    [DatesAvailable] => 12.04.2011 
    [Contactable] => true 

[Name] 
    [ID] => GH01 
    [First] => Greg 
    [Last] => Hobb 
    [DateAvailable] => 13.04.2011 
    [Contactable] => true 

[Name] 
    [ID] => JM01 
    [First] => James 
    [Last] => Murr; 
    [DatesAvailable] => 13.04.2011 
    [Contactable] => true 

私はそれぞれの名前を取るに適した形ループすることはできませんから、アレイ・リターンの一例です利用可能な日付をグループ化します。そんなに愚かな気分。シンプルなようですが、私はそれの周りに私の頭を得ることはできません。おそらくあなたの数学者の一人が私を正しい方向に向けることができます。次のように

オブジェクトを取得するコードは次のとおりです。

$ result->の名前。私が表示したいと思いますか

名:グレッグHobb盛 日付:2011年4月12日 - 理にかなっている2011年4月13日

希望、私は、それらを表示する方法をunderstasndちょうどそれらをつかむありません正しい方法で。

答えて

1

あなたの配列/データを実装する方法は不要で、複雑すぎるようです。 2つのDatesAvailable(開始日と終了日)を取り、それらをまとめて実際のDatesAvailbleにすることができるように、日付以外の同じ2つの配列要素があります。
名前配列には、startDateフィールドとendDateフィールドを配置します。そうすれば、各要素は必要なすべてのデータを保持する異なる個人になります。

ここでは、これを取る、と私は上記のような新しい配列を作成することができる方法のいくつかの実際の途切れ途切れのコード(すぐにそれを手早く)です:

$newArray; $flag; $num; 
for($i = 0; $i < count($Names); $i++) 
{ 
    $flag = false; 
    for($c = 0; $c < count($newArray); $c++) 
    { 
     if($names[$i][$ID] == $newArray[$c][$ID]) 
     { 
       $newArray[$c][$endDate] = $Names[$i][$datesAvailable]; 
       $flag = true; 
       break; 
     } 
    } 
    if(!$flag) 
    { 
     //create a new element in $newArray. set ur ID, contact fields, etc. 
     $newArray[count($newArray)][$startDate] = $names[$i][$datesAvailable]; 
    } 
} 

ホープ、これは> <

任意の助けであります
+0

石けんの反応がどのようにレイアウトされているかショックを受けています。頭が痛い – goingsideways

+0

笑い、駄目じゃない。あなたがそれを変更することができない場合は、私はXD –

+0

のためのループを書き留めようとします。あなたが提供するものを見てください。私は現在のIDに変数を作成し、変数が同じになるまでループし、配列に追加します。しかし、私はそれを働かせることができませんでした。 – goingsideways

関連する問題