2013-04-01 3 views
1

У меня есть массив с 1000 строк, как этот, и я хочу преобразовать его в строку, но только 50 строк.Получите заданное количество строк из массива

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

Результат должен быть, как я хотел бы использовать:

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

Но, как сказал мне нужно $string1 иметь только 50 строк из массива и, если возможно, чтобы получить их рандомизированное. Мне нужны советы. Thx

ответ

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); 
Смежные вопросы