Php数组不使用变量,但使用直接值
我正在尝试创建随机团队,所以我使用下面的函数Php数组不使用变量,但使用直接值,php,arrays,Php,Arrays,我正在尝试创建随机团队,所以我使用下面的函数 $candidates = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21); function getTeam($candidates, $team_size = 3) { shuffle($candidates); $teams = array_map(function($chunk){ return implode(",", $chun
$candidates =
array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
function getTeam($candidates, $team_size = 3)
{
shuffle($candidates);
$teams = array_map(function($chunk){
return implode(",", $chunk);
}, array_chunk($candidates, $team_size));
return implode("\n", $teams);
}
$ss = print_r(getTeam($candidates));
上述代码的输出与我的输出一样工作正常
8,5,6,3,15,1,2
但如果我在代码下工作
$np="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21";
$candidates = array($np);
function getTeam($candidates, $team_size = 3) {
shuffle($candidates);
$teams = array_map(function($chunk){
return implode(",", $chunk);
}, array_chunk($candidates, $team_size));
return implode("\n", $teams); }
$ss = print_r(getTeam($candidates));
然后我得到的就是这个输出
产量:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
我不知道为什么它不起作用每次都是一样的,只是我做了一点小小的改变,问题是你的候选对象是一个字符串而不是数组,所以你需要在将它传递给函数之前将其设置为数组,所以你需要做的是
<?php
$np="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21";
$candidates = explode(',',$np);
print_r($candidates);
function getTeam($candidates, $team_size = 3) {
shuffle($candidates);
$teams = array_map(function($chunk){
return implode(",", $chunk);
},
array_chunk($candidates, $team_size));
return implode("\n", $teams);
}
print_r(getTeam($candidates));
?>
这很好用。您需要分解字符串问题是您的候选对象是字符串而不是数组,所以在将其传递给函数之前需要将其设置为数组,所以您需要做的是
<?php
$np="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21";
$candidates = explode(',',$np);
print_r($candidates);
function getTeam($candidates, $team_size = 3) {
shuffle($candidates);
$teams = array_map(function($chunk){
return implode(",", $chunk);
},
array_chunk($candidates, $team_size));
return implode("\n", $teams);
}
print_r(getTeam($candidates));
?>
这很好用。您需要分解字符串Php数组接受混合参数 就你而言
数组(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)代码>带有21个参数
而$np=“1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21”$候选者=数组($np)代码>仅接受一个参数
“1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21”
不同于1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,19,20,21
要从分隔符分隔的字符串创建数组,请使用分解
指
数组([mixed$…]):数组
语法“index=>values”,用逗号分隔,定义索引和值。索引的类型可以是string或integer。如果省略索引,
从0开始,将自动生成整数索引。如果索引
是一个整数,下一个生成的索引将是最大的整数索引
+ 1. 请注意,当定义两个相同的索引时,最后一个索引将覆盖第一个索引
在最后一个定义的数组项后面有一个尾随逗号是一种有效的语法,尽管这很少见
Php数组接受混合参数
就你而言
数组(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)代码>带有21个参数
而$np=“1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21”$候选者=数组($np)代码>仅接受一个参数
“1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21”
不同于1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,19,20,21
要从分隔符分隔的字符串创建数组,请使用分解
指
数组([mixed$…]):数组
语法“index=>values”,用逗号分隔,定义索引和值。索引的类型可以是string或integer。如果省略索引,
从0开始,将自动生成整数索引。如果索引
是一个整数,下一个生成的索引将是最大的整数索引
+ 1. 请注意,当定义两个相同的索引时,最后一个索引将覆盖第一个索引
在最后一个定义的数组项后面有一个尾随逗号是一种有效的语法,尽管这很少见
试试这个
只需在$np中传递数组并在$candidates中使用
$np=数组(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
$candidates=$np;
函数getTeam($candidates,$team\u size=3){
洗牌(候选人);
$teams=数组\映射(函数($chunk){
返回内爆(“,”,$chunk);
},数组块($candidates,$team_size));
返回内爆(“\n”,$teams);}
$ss=打印(获取团队($候选者))代码>试试这个
只需在$np中传递数组并在$candidates中使用
$np=数组(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
$candidates=$np;
函数getTeam($candidates,$team\u size=3){
洗牌(候选人);
$teams=数组\映射(函数($chunk){
返回内爆(“,”,$chunk);
},数组块($candidates,$team_size));
返回内爆(“\n”,$teams);}
$ss=打印(获取团队($候选者))代码>如果要将逗号分隔的字符串用作数组,则需要分解该字符串。如果要将其用作数组,则需要分解逗号分隔的字符串。