我有这个函数,它基本上传递不同的数组,但它只能传递长度为5的数组。我想知道是否有办法通过这个函数传递各种数组长度?
输出只需要一次显示一个项目而不是全部。我有8个不同长度的数组,这就是我制作一个通用函数来传递数组的原因。
function myFunction(&$array){
//shuffling array contents
shuffle($array);
//isolate an array
if(in_array($array[0], $array)){
echo $array[0];
}
elseif(in_array($array[1], $array)){
echo $array[1];
}
elseif(in_array($array[2], $array)){
echo $array[2];
}
elseif(in_array($array[3], $array)){
echo $array[3];
}
elseif(in_array($array[4], $array)){
echo $array[4];
}
}
答案 0 :(得分:0)
为您的函数添加一个参数,例如function myFunction(&$array, $len){
//shuffling array contents
shuffle($array);
//isolate an array
for ($i = 0; $i < len; $i++) {
if(in_array($array[i], $array)){
echo $array[i];
break;
}
}
}
,并使用循环:
if ... elseif ... elseif ...
这与$array[0]
事情完全相同。我不知道应该怎么做。我认为他总会回应<div class="container">
<div class="row">
<div class="col-md-2">
<img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=150&h=150">
</div>
<div class="col-md-4">
<h2>Please align me! :)</h2>
</div>
</div>
</div>
所以它可以简化很多。
答案 1 :(得分:0)
我觉得我可能仍然遗漏了一些东西,但看起来这可以简化为:
function myFunction(&$array){
//shuffling array contents
shuffle($array);
//isolate an array
echo isset($array[0]) ? $array[0] : '';
}
这将采用任何长度的数组(包括零),随机播放和回显一个项目。
答案 2 :(得分:0)
基本上,您希望传递包含可变数量数组的数组,并随机选择其中一个数组。这是对的吗?
如果是这样,那么应该这样做:
$key = array_rand ($array);
$member = $array[$key];
无需测试成员的存在,因为它们将始终存在。事实上,正如您所看到的,根本不需要创建自定义功能。 ;)