如何访问只有一个元素或多个元素的数组的相同元素?

时间:2011-12-31 19:28:03

标签: php arrays api

我访问一个返回元素数组的API。

如果只有一个元素,它将返回数组:

Array {

   [response] => Array {

      [name] => Frank

   }

}

但是,如果有多个结果,则会更深入地考虑每个结果:

Array {

   [response] => Array {

      [0] = > Array {

         [name] => Frank

      }

      [1] = > Array {

         [name] => John

      }

   }

}

这非常令人沮丧,因为这意味着我必须首先检查是否只有一个元素或多个元素,然后分别对每个元素进行编码。

是否有更好的解决方案可以自动处理这两种情况(例如,一种结果与多种结果)并始终检索可用的名称?

2 个答案:

答案 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; }