在帖子中多次显示相同的随机密钥

时间:2019-05-17 08:24:06

标签: php arrays random

此代码可能不是单击通话的最佳方式,但可以使用。

我想在帖子中随机分配3个数字。如果只显示一次带有唯一的代码,就可以了。但是,当要在帖子中显示相同的随机数低两倍时,就很复杂了。显示的数字不同。

如何控制几次才能显示相同的随机数(在刷新页面时)。

$numbers = array("800-433-7300", "800-633-3711", "800-756-8613");
switch ($numbers[array_rand($numbers)]) {
   case "800-433-7300":
      echo '<a href="tel:8004337300">800-433-7300</a>';
      break;
   case "800-633-3711":
      echo '<a href="tel:8006333711">800-633-3711</a>';
      break;
   default:
      echo '<a href="tel:8007568613">800-756-8613</a>';
      break;
}

我希望800-433-7300将显示在页面的不同部分。下一个刷新页面800-633-3711也会显示几次,依此类推...

有什么想法吗?您能否仅建议我一个特定的功能,结构或页面资源来自己解决此问题?

谢谢

2 个答案:

答案 0 :(得分:1)

使用变量存储值:

$numbers = array("800-433-7300", "800-633-3711", "800-756-8613");
$rand_num = $numbers[array_rand($numbers)];

然后在页面中需要的地方使用它:

echo '<a href="tel:'.str_replace('-', '', $rand_num).'">$rand_num</a>';

现在,如果您始终需要相同的字符串来回显,请存储字符串:

$numbers = array("800-433-7300", "800-633-3711", "800-756-8613");
switch ($numbers[array_rand($numbers)]) {
  case "800-433-7300":
    $rand_string = '<a href="tel:8004337300">800-433-7300</a>';
    break;
  case "800-633-3711":
    $rand_string = '<a href="tel:8006333711">800-633-3711</a>';
    break;
  default:
    $rand_string = '<a href="tel:8007568613">800-756-8613</a>';
    break;
}

现在您可以在所需的位置回显字符串:

echo $rand_string;

答案 1 :(得分:1)

如果我理解正确,您希望每个刷新页面上都显示一个不同的数字。如果是这种情况,我将使用Cookie遍历一系列电话号码。

您可以在每次页面刷新时使用相同的数字,因为它存储在变量$phones[$phoneIndex]

如果您需要更多的数字,只需将它们按数组排列即可。

$phones = ['800-433-7300','800-633-3711','800-756-8613'];

$phoneIndex= isset($_COOKIE['phoneIndex']) ? $_COOKIE('phoneIndex') : 0;

echo "<a href=\"$phones[$phoneIndex]\">$phones[$phoneIndex] </a>";

setcookie('phoneIndex', ($phoneIndex+1)%3);