【问题标题】:Display same random key several times in a post在帖子中多次显示相同的随机键
【发布时间】:2019-05-17 08:24:05
【问题描述】:

此代码可能不是最适合点击调用的代码,但它确实有效。

我想在帖子中随机分配 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也会显示几次等等……

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

谢谢

【问题讨论】:

  • 不太清楚,但是你不能用一个var来获取这个rand number,然后在你的页面中使用这个var吗?
  • 将值粘贴到变量中,然后在该点之后尽可能多地使用该变量
  • $save_it = '&lt;a href="tel:8004337300"&gt;800-433-7300&lt;/a&gt;';
  • 我认为他的意思是在多个页面重新加载时写入不同的数字。我会将其存储在 cookie 中,然后在下次重新加载时,根据 cookie 值显示另一个
  • 您可以使用格式化程序在前端(javascript)上对其进行格式化,然后将数字保存为 unformatet 字符串。这会增加可读性并减少冗余 - 您可以摆脱该逻辑并在后端切换语句。

标签: php arrays random


【解决方案1】:

使用 var 存储值:

$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;

【讨论】:

    【解决方案2】:

    如果我理解正确,您希望在每次刷新页面时出现不同的数字。如果是这种情况,我会使用 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);
    

    【讨论】:

    • 谢谢@amarnasan,这也是个不错的选择!
    猜你喜欢
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多