douzhang5295 2014-01-09 12:19
浏览 42
已采纳

foreach循环不能处理单个结果

I have got the following array stored in the variable $details:

[formats] => Array ( 
        [format] => Array ( 
                 [0] => Array ( 
                    [formatId] => 1 
                    [code] => High 
                    [price] => Array ( 
                           [0] => 0.00 
                           [1] => 0.00 
                           [2] => 0.00 
                           [3] => 0.00 
                           [4] => 0.00 ) ) 
                  [1] => Array ( 
                     [formatId] => 2 
                     [code] => Med 
                     [price] => Array ( 
                            [0] => 0.00 
                            [1] => 0.00 
                            [2] => 0.00 
                            [3] => 0.00 
                            [4] => 0.00 ) ) 
                   ) )

and I use the following code to loop trough this array

<? foreach ($details['formats']['format'] as $format)
     {
        echo $format['code'];
     }
?>

Which works fine, but then, sometimes there is only one result in the array and then it looks like this:

[formats] => Array ( 
        [format] => Array ( 
                    [formatId] => 1 
                    [code] => High 
                    [price] => Array ( 
                           [0] => 0.00 
                           [1] => 0.00 
                           [2] => 0.00 
                           [3] => 0.00 
                           [4] => 0.00 )
                   ) )

Unfortunally my for each loop does not work then, because it is only a single array. How can this be solved? I cannot change the array.

I can use while or for loops if that is required, but I have no idea how

  • 写回答

2条回答 默认 最新

  • dse55384 2014-01-09 12:24
    关注

    A very crude method of approaching the problem would be to just fold an 'if' around it;

    <? 
    if (isset($details['formats']['format'][0])){
        foreach ($details['formats']['format'] as $format)
        {
            echo $format['code'];
        }
    } else {
        echo $details['formats']['format']['code'];
    }
    ?>
    

    This only works if the result array is consistant and it will always return [0] on multiple results.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题