Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP选择随机第二个值_Php - Fatal编程技术网

PHP选择随机第二个值

PHP选择随机第二个值,php,Php,我有一个名为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 a

我有一个名为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);
    } 
}
$trimmed=file('file.txt',file_IGNORE_NEW_line | file_SKIP_EMPTY_line);
$value=2;
foreach($修剪为$行){
如果($line==“Text$value”){
回音$line.“
”; 回波电流($); } }

谢谢

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

<?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>';

?>


是什么创建了
文件.txt
?为什么不使用XML?文件.txt将存储一些游戏任务。级别1和任务描述。您可以使用另一种格式,如JSon。@hjpotter92-为什么使用XML??我原以为YAML或JSON对于这样的东西来说是一种更干净的格式。甚至只是一个简单的INI文件。对于如此简单的东西,XML似乎有点过分了。