嘿是我的肥皂回应中的数组返回示例(我无法控制webservice)
[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->名称;
我想如何展示:
姓名:Greg Hobb 日期:2011年4月12日 - 2011年4月13日
希望有意义,我想知道如何展示它们,而不是以正确的方式抓住它们。
答案 0 :(得分:1)
您实现阵列/数据的方式似乎是不必要的并且过于复杂。除了日期之外,您有两个相同的数组元素,因此您可以使用两个DatesAvailable(开始日期和结束日期)并将它们放在一起以使您的实际DatesAvailble。在您的Name数组中,只需放一个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];
}
}
希望这有任何帮助&gt;&lt;