我有2个索引0和1的数组我希望当我调用它时应该从这些索引中选择随机 我的数组是
'schools' => [
'records' => [
'students' => [
'add' => [
'text 1',
'text 2'
],
],
],
],
这里我的数组是
trans('app.schools.records.students.add')
它现在选择文本1和文本2,所以我把它作为帮助传递给了我的方法
{{gettitles(trans('app.schools.records.students.add'))}}
我的get gettitles方法看起来像
function gettitles ($array){
$rand_keys = array_rand($array, 2);
echo $array[$rand_keys[0]] . "\n";
echo $array[$rand_keys[1]] . "\n";
}
如果我回显索引0它唯一的文本,它总是拿起两个... 但我只想从文本1和文本2中随机选择一个 请帮助解决它 感谢
答案 0 :(得分:1)
$rand_keys = array_rand($array, 2);
你告诉它返回2个元素。 2是要返回的随机元素的数量。将其更改为1。
$rand_keys = array_rand($array, 1);
http://php.net/manual/en/function.array-rand.php
此代码经过测试并有效:
$myArray = array("test 1", "test2");
gettitles($myArray);
function gettitles ($array){
$rand_keys = array_rand($array, 1);
echo $array[$rand_keys] . "\n";
}
您选择使用 array_rand 的函数会返回随机元素的键,而不是元素本身的内容。
答案 1 :(得分:1)
array_rand功能 从数组中选择一个或多个随机条目,并返回随机条目的一个或多个键。它使用不适合加密目的的伪随机数生成器。 所以,而不是2传1。
function gettitles ($array){
shuffle($array);
$rand_keys= array_values($array);
echo $array[$rand_keys[0]] . "\n";
echo $array[$rand_keys[1]] . "\n";
}
它会起作用。
编辑
使用shuffle函数的组合与array_values它将起作用。
function gettitles ($array){
shuffle($array);
$rand_keys= array_values($array);
echo $array[$rand_keys[0]] . "\n";
echo $array[$rand_keys[1]] . "\n";
}
编辑2
function gettitles ($array){
shuffle($array);
$rand_keys= array_values($array);
echo $rand_keys[0] . "\n";
echo $rand_keys[1] . "\n";
}