PHP随机选择第二个值


PHP Select random second value

我有一个名为file.txt的文件,里面有这样的文本:

Text 1
Vivamus arcu neque, ullamcorper vel eleifend id, euismod viverra nisi.
Text 2
Cras posuere neque vitae fringilla lobortis.
Text 2
Phasellus eu sapien sit amet diam eleifend ultricies a vitae tellus.
Text 3
Nulla at ipsum et quam euismod porttitor sit amet sed odio.

我从这个文件中选择"文本2"行和该行下的描述。

我想选择一个随机的"文本2"行及其描述,而不是全部。我试图打破这一点,但它只显示了我的第一个值,当然,我试图洗牌%修剪,但没有像我预期的那样奏效。

$trimmed = file('file.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$value = 2;
foreach ($trimmed as $line) {
    if ($line == "Text $value") {
        echo $line."<br>";
        echo current($trimmed);
    } 
}

感谢

试试这个,它可能很笨重:

<?php
  function get_random_line($number, $file='file.txt'){
    $trimmed = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    $string = "Text $number";
    $array = array();  
    foreach ($trimmed as $key => $line) {
      if($key % 2 == 0){
        $arr_key = $line;
        if(!array_key_exists($arr_key,$array)){
          $array[$arr_key]['total'] = 0;
        }
      }else{
        $array[$arr_key]['total']++;
        $array[$arr_key]['rows'][] = $line; 
      }         
    }
    if(key_exists($string,$array)){
      $key = array_rand($array[$string]['rows'],1);
      return $array[$string]['rows'][$key];
    }else
    {
      return 'Provide a Valid Key';
    }
  }

  echo '<pre>';
  print_r(get_random_line(3,'file.txt')); // Get Random Lines based on Label Value
  echo '</pre>';
?>
相关文章: