为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PHP 在多维数组及其子数组中循环

使用 PHP 在多维数组及其子数组中循环

PHP
GCT1015 2021-09-05 20:54:17
我有以下数组:$items = array(    array(        'name' => 'Item 1',        'desc' => 'Lorem ipsum...',        'rates' => array(            'Yes' => 50,            'No' => 75        )    ),    array(        'name' => 'Item 2',        'desc' => 'Lorem ipsum...',        'rates' => array(            'Yes' => 50,            'No' => 0        )    ));我怎样才能在 之间循环rates?这是我尝试过的:foreach ($items as $item) {    foreach($item['rates'] as $rate => $value){        echo $rate['rates'];    }}谢谢。
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

将您的代码更改为


foreach ($items as $item) {

  foreach($item['rates'] as $rate => $value){

    echo $value;echo '<br/>';

 }

}

在第二个循环中$rate是键并$value具有该键的当前值。


查看完整回答
反对 回复 2021-09-05
?
青春有我

TA贡献1784条经验 获得超8个赞

要保留(并继续)您的工作:


foreach ($items as $item) {

  echo "Number of ratings for item: {$item['name']}<br/>";

  foreach($item['rates'] as $rateKey => $rateValue) {

    echo " - {$rateKey}: {$rateValue}<br/>";

  }

}

输出:


Number of ratings for item: Item 1

- Yes: 50

- No: 75

Number of ratings for item: Item 2

- Yes: 50

- No: 0


查看完整回答
反对 回复 2021-09-05
?
长风秋雁

TA贡献1757条经验 获得超7个赞

循环内循环比循环慢得多,而且只有当您循环的数组变大时,它才会变得明显。因此,您可以采取的一种方法如下:


    $items = array(

    array(

        'name' => 'Item 1',

        'desc' => 'Lorem ipsum text',

        'rates' => array(

            'Yes' => 50,

            'No' => 75

        )

    ),

    array(

        'name' => 'Item 2',

        'desc' => 'Lorem ipsum text',

        'rates' => array(

            'Yes' => 50,

            'No' => 0

        )

     )

    );


$rates = array_column($items, 'rates');


foreach($rates as $key => $value) {

    if($value['Yes']) {

         echo " Yes: {$value['Yes']}<br/>";

    }

     echo " No: {$value['No']}<br/><br/>";

}

结果:


Yes: 50

No: 75


Yes: 50

No: 0


查看完整回答
反对 回复 2021-09-05
  • 3 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信