Тестовые данные в php - PullRequest
       11

Тестовые данные в php

1 голос
/ 31 октября 2011

Я хочу создать тестовые данные для тестирования. Что мне нужно:

У меня будет список из 30 имен. Для каждого имени мне нужно заполнить начальную и конечную позиции. Позиция от 1 до 30.

Так что я хотел использовать RAND() в php, но у меня есть проблема, для которой я не могу найти хороший способ.

Каждая позиция может быть использована только один раз. Поэтому, если я нажимаю кнопку «генерировать данные», я хочу, чтобы для всех 30 имен была начальная и конечная позиция без дублирования позиции. Поэтому в начале я буду использовать 1 - 30, а в конце - также 1 - 30.

Мне нужны эти данные в текстовом поле. Есть ли простая функция для этого? Или вы знаете, как я могу это сделать, не заполняя 60 текстовых полей в каждом тесте.

Ответы [ 3 ]

2 голосов
/ 31 октября 2011

Примерно так можно начать:

$names = array(/*...*/);
$l = count($names);
$rand = array();
for ($i = 0; $i<$l; $i++) {
  $rand[] = $i;
}
shuffle($rand);
for ($i = 0; $i < $l; $i++) {
  $names[$i]['start'] = $rand[$i];
}

Или:

$names = array(/*...*/);
shuffle($names);
for ($i = 0, $l = count($names); $i < $l; $i++) {
  $names[$i]['start'] = $i;
}
0 голосов
/ 31 октября 2011

Если вам не нужен ваш код для динамического генерирования данных, вы можете попробовать что-то вроде этого сайта http://www.generatedata.com/

0 голосов
/ 31 октября 2011

Я буду использовать shuffle (дважды),

что-то вроде

$arr = range(1, 30);
$first_numbers_position = shuffle($arr);
$second_numbers_position = shuffle($arr);

если у вас уже есть массив с именами Вы можете использовать эту функцию

Очень простая клавиша сохранения функции перемешивания со значением

function shuffle_assoc( $array )
{
   $keys = array_keys( $array );
   shuffle( $keys );
   return array_merge( array_flip( $keys ) , $array );
}
...