0

ローテーターのコーディング方法は知っていますが、空の $stuff_link 変数をスキップするものを作成するにはどうすればよいですか?

以下に示すように、4 つのリンク変数がありますが、空白になることがあります。だから私がする必要があるのは、ローテーターを使用して 4 つの変数間を回転させることですが、たとえば $stuff_link が空白の場合はスキップして渡します。

$stuff_link
$stuff_link2 
$stuff_link3
$stuff_link4

以下のコードは、内部に配置する場所です。

if(percentChance(35) && $stuff_status == 1)
{

    rotator goes here       
}

以下は、percentChance の関数です。

function percentChance($chance){
// Notice we go from 0-99 - therefore a 100% $chance is always larger
$randPercent = mt_rand(0,99);
 return $chance > $randPercent;
}
4

2 に答える 2

0

4 つの変数を使用し、最後に数字のない変数を 1 つ使用して、少し興味深いものにしました。これらをそのまま使用する必要がある場合は、次のようになります。

$stuffs = array('', '2', '3', '4'); // Array of possible variable endings
$random = array_rand($stuffs); // Pick one
$selected = $stuffs[$random]; // Get the ending

// Check if the variable is empty, if not pick another
while (empty(${'stuff_link'.$selected})) {
    $random = array_rand($stuffs);
    $selected = $stuffs[$random];
}

// Output
echo ${'stuff_link'.$selected};

変数を配列に移動できれば、作業が楽になります。

// Example array
$stuff_link = array();
$stuff_link[] = 'stuff 1';
$stuff_link[]  = '';
$stuff_link[] = 'stuff 3';
$stuff_link[] = 'stuff 4';

shuffle($stuff_link); // mix them up

// Keep shuffling until the first value is not empty
while (empty($stuff_link[0])) {
    shuffle($stuff_link);
}

// Output
echo $stuff_link[0];
于 2013-01-23T03:52:42.637 に答える
0

質問から理解できることから、次のような関数が必要になります。

function isEmpty($link) {
    return ($link == NULL || $link == "");            
}

if (!isEmpty($stuff_link))
{
    // Only enters if not empty
}
于 2013-01-23T02:26:56.197 に答える