我访问一个返回元素数组的API。
如果只有一个元素,它将返回数组:
Array {
[response] => Array {
[name] => Frank
}
}
但是,如果有多个结果,则会更深入地考虑每个结果:
Array {
[response] => Array {
[0] = > Array {
[name] => Frank
}
[1] = > Array {
[name] => John
}
}
}
这非常令人沮丧,因为这意味着我必须首先检查是否只有一个元素或多个元素,然后分别对每个元素进行编码。
是否有更好的解决方案可以自动处理这两种情况(例如,一种结果与多种结果)并始终检索可用的名称?
答案 0 :(得分:2)
您可以编写一个处理特殊情况的迭代器,也可以使用特殊情况迭代它:
foreach ($array['response'] as $responses)
{
isset ($responses[0]) || $responses = array($responses);
foreach ($repsonses as $response)
{
# standard processing code per each item.
}
}
特殊情况可能非常烦人,所以要及早照顾它们,理想情况下让它们消失。
答案 1 :(得分:0)
(如果可以)调整原始API以始终使用索引键返回数组,即使数组中只有一个项目。
否则,在从API中获取结果后添加此项。
if(count($result['response'])==1) { $newResult['response'][0]=$result; }
else { $newResult=$result; }