【问题标题】:Get first value of array and store in new array php获取数组的第一个值并存储在新数组php中
【发布时间】:2015-10-05 07:23:10
【问题描述】:

我正在尝试制作纸牌游戏。 我有 6 个变量存储在数组中。比我使用fisherYates 方法随机化数组,并显示其中的四个。 问题是,当我仅以这种方式随机化它时,它只会给出这六个的随机输出,并且具有所有不同的类型。 所以我想要一些重复,比如,如果你抽四张牌,你会得到输出 例如:俱乐部,俱乐部,钻石,心形,或心形,星形,星形,心形..如果你得到一个点.. 我想这样做:将数组放入4次循环中,每次循环时,它将第一个或最后一个值存储在新数组中,这样我就有更大的机会组合相同的卡片输出数组。 但我被卡住了,我不知道该怎么做:/

这是我迄今为止尝试过的

$diamond = 'cube.jpg';
$heart = 'heart.jpg';
$spade = 'spade.jpg';
$club = 'tref.jpg';
$star='star.jpg';
$qmark='qmark.jpg';

$time=microtime(35);

$arr=[$diamond,$heart,$spade,$club,$star,$qmark];

function fisherYatesShuffle(&$items, $time)
{   



    for ($i = count($items) - 1; $i > 0; $i--)
    {
        $j = @mt_rand(0, $i);
        $tmp = $items[$i];
        $items[$i] = $items[$j];
        $items[$j] = $tmp;
    }
    return $items;
}

    $i=0;
    do {

        $niz[$i]=fisherYatesShuffle($arr,$time);
        reset($niz);


        $i++;
    } while ($i <= 3);

【问题讨论】:

  • 你考虑过使用 break 和 continue 关键字吗?
  • 嗯..这里怎么应用?
  • 阅读有关这些关键字的手册。

标签: php arrays random


【解决方案1】:

找到了解决办法。只是简单地对多维数组的第一个元素进行 foreach :) 代码如下:

    $diamond = 'cube.jpg';
    $heart = 'heart.jpg';
    $spade = 'spade.jpg';
    $club = 'tref.jpg';
    $star='star.jpg';
    $qmark='qmark.jpg';

    $time=microtime(35);

    $arr=[$diamond,$heart,$spade,$club,$star,$qmark];



    $niz=array();

    $i=0;
    do {

        $niz[$i]=fisherYatesShuffle($arr,$time);
        //reset($niz);


        $i++;
    } while ($i <= 3);


    foreach ($niz as $key ) {
        $randomArr[]=$key[0];  ;
    }



function fisherYatesShuffle(&$items, $time)
{   



    for ($i = count($items) - 1; $i > 0; $i--)
    {
        $j = @mt_rand(0, $i);
        $tmp = $items[$i];
        $items[$i] = $items[$j];
        $items[$j] = $tmp;
    }
    return $items;
}
print_r($randomArr);

【讨论】:

    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2021-01-12
    • 2015-03-03
    • 2014-09-28
    相关资源
    最近更新 更多