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

假设把2017改成2014,即有两个相同2014学号,如何输出这相同学号的两个名字

<?php

 $students = array(

'2010'=>'令狐冲',

'2011'=>'林平之',

'2012'=>'曲洋',

'2013'=>'任盈盈',

'2014'=>'向问天',

'2015'=>'任我行',

'2016'=>'冲虚',

'2014'=>'方正',

'2018'=>'岳不群',

'2019'=>'宁中则',

);//10个学生的学号和姓名,用数组存储

$query = '2014';

//使用循环结构遍历数组,获取学号和姓名

foreach($students as $key =>$v){ 

    //使用条件结构,判断是否为该学号

if($key==$query)

echo $v;//输出(打印)姓名

break;//结束循环(跳出循环)

}

}

?>


正在回答

1 回答

array中如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了。

就你写的这个程序,把foreach里面改为

foreach($students as $key=>$v)

    //使用条件结构,判断是否为该学号

     //if($key==$query)

     { 

     echo $v;//输出(打印)姓名

            echo "<br />";

     //break;//结束循环(跳出循环)

     }

}

即把数组都打出来,会得到这样的结果:

令狐冲
林平之
曲洋
任盈盈
方正
任我行
冲虚
岳不群
宁中则

方正把向问天给覆盖了!如果把下面岳不群的key也改成2014,运行会得到:

令狐冲
林平之
曲洋
任盈盈
岳不群
任我行
冲虚
宁中则

岳不群把他俩都覆盖了!这里有array更详细的介绍:http://php.net/manual/zh/language.types.array.php


0 回复 有任何疑惑可以回复我~
#1

翼梦设计工作室 提问者

请问,那怎么改才不覆盖呢?
2016-11-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

假设把2017改成2014,即有两个相同2014学号,如何输出这相同学号的两个名字

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信