1

このような1000行の配列があり、文字列に変換したいのですが、50行しかありません。

 $thearray = Array
        (
          [0] => row1
          [1] => row2
          [2] => row3
          [3] => row4
          [4] => row5
          [5] => row6
          ...
          [999] => row1000
        )

出力は、私が使用するようなものでなければなりません:

$string1 = implode(',', $thearray);

しかし、前述のように$string1、配列から 50 行だけを取得する必要があり、可能であれば、それらをランダム化する必要があります。アドバイスが必要です。どうも

4

1 に答える 1

0

これを試すことができます。説明についてはコード内のコメントを参照し、デモンストレーションについてはhttp://3v4l.org/hjuv6を参照してください。

// Lets create a dummy array
$array = array();

for($i = 0; $i < 1000; $i++) {
  $array[] = $i;
}

// Lets make a randomized temporary array
$backUpArray = $array;
$tempArray = array();

for($i = 0; $i < 50; $i++) {

  // Select random Index
  $randomIndex = rand(0 , count($backUpArray));
  // Copy it to the temp array
  $tempArray[] = $backUpArray[$randomIndex];
  // Delete the row from our backup
  unset($backUpArray[$randomIndex]);
  // Reorganize the key indexes
  $backUpArray = array_values($backUpArray);
}


$string1 = implode(",", $tempArray);

var_dump($string1);
于 2015-07-29T05:45:02.080 に答える