有没有办法通过php函数传递超过有限数量的数组?

时间:2016-10-14 13:29:15

标签: php html arrays web

我有这个函数,它基本上传递不同的数组,但它只能传递长度为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];
    }
}

3 个答案:

答案 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&amp;txt=350%C3%97150&amp;w=150&amp;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];

无需测试成员的存在,因为它们将始终存在。事实上,正如您所看到的,根本不需要创建自定义功能。 ;)