基本上我的问题是我不能随机播放另一个数组中的数组。更具体一点,我想改组'Variante de raspuns:'的数值:
$intrebari=array(
array('Enunt:'=>'2+2=','Variante de raspuns:'=>array(2,5,6,4),'Raspuns corect:'=>4,'Punctaj obtinut:'=>'25p'),
array('Enunt:'=>'2*2=','Variante de raspuns:'=>array(3,4,8,1),'Raspuns corect:'=>4,'Punctaj obtinut:'=>'25p'),
array('Enunt:'=>'2/2=','Variante de raspuns:'=>array(1,3,4,8),'Raspuns corect:'=>1,'Punctaj obtinut:'=>'25p'),
array('Enunt:'=>'2-2=','Variante de raspuns:'=>array(2,3,0,4),'Raspuns corect:'=>0,'Punctaj obtinut:'=>'25p')
);
我想到的功能是:
function amestecVariante(&$array){
foreach($array as $intrebare){
foreach($intrebare as $k=>$v)
if($k=='Variante de raspuns:')
shuffle($v);}
}
现在我只想用洗牌的'Variante de raspuns:'显示数组。我有另一个功能来显示它,所以它最终会这样:
amestecVariante($intrebari);
afisare($intrebari);
问题是'Variante de raspuns'数组没有洗牌,它最初显示。此外,我真的想了解为什么我的功能不起作用,我不是在寻找另一种解决方案,除非我的功能根本不好。提前谢谢。
答案 0 :(得分:3)
请改为:
function amestecVariante(&$array){
foreach($array as &$intrebare){
shuffle($intrebare['Variante de raspuns:']);
}
}
您不必遍历内部数组 - 您只需直接访问数组(通过键)。但是你需要让PHP明白你将在foreach
中修改这个数组 - 这就是&$intrebare
中的引用。