2014-10-03 3 views
1

로또 티켓에서 추첨을 시뮬레이션하기 위해 두 개의 배열을 만들어야합니다.PHP에서 사전 정의 된 숫자로 배열 채우기

상기 제 1 어레이는 상기 제 2 어레이는 I은 PHP 상당히 새롭 1 49

7 개 내지 고유 번호로 구성된다 (1) 및 (49) 사이 6 개 고유 번호로 구성되며, I는도 못해 배열을 채우는 방법을 미리 정의 된 크기로 지정하고 1에서 49 사이의 6 개의 숫자를 임의로 배열에 넣은 다음 배열을 오름차순으로 정렬합니다.

이것은 올바른 방향으로 가고 있다고 생각하는 내용을 간략하게 요약 한 것입니다.

$tmp; 

$lotto = array(rand(1,49)); //Creating the random number for $lotto 
$lottoMax = array(rand(1,49)); //Creating the random number for $lottoMax 

for($tmp=0; $lotto <= 6; $tmp++){ 
    //creating the size of the array? 
} 

모든 조언/팁/도움을 주시면 대단히 감사하겠습니다. 감사합니다.

+0

'array_rand()'함수를 살펴보십시오. – Barmar

답변

4

이와 비슷한 접근 방법에는 여러 가지가 있습니다. 먼저 염두에 두는 것은 range(1, 49)을 사용하여 1-49의 배열을 만드는 것입니다. 그런 다음 배열을 shuffle()으로 섞어 순서를 임의로 만듭니다. 마지막으로, 이미 랜덤 화되었으므로 첫 번째 6 또는 7 숫자를 잘라내어 두 배열을 채울 수 있습니다 (array_slice()과 함께 사용). 내용에 반복이 없도록 보장되며 몇 가지 작업 만 필요합니다.

// The bag of numbers is a range 
$bag = range(1, 49); 

// Shuffle it 
shuffle($bag); 

// Get the first array 
$first_group = array_slice($bag, 0, 6); 

// Shuffle it again and get the second array 
shuffle($bag); 
$second_group = array_slice($bag, 0, 7); 

print_r($first_group); 
Array 
(
    [0] => 36 
    [1] => 22 
    [2] => 34 
    [3] => 17 
    [4] => 23 
    [5] => 25 
) 
print_r($second_group); 
Array 
(
    [0] => 40 
    [1] => 32 
    [2] => 33 
    [3] => 36 
    [4] => 29 
    [5] => 7 
    [6] => 3 
) 
1

당신은 다음 슬라이스, 다음 셔플, 1에서 49 range() 기능에 의해 초기 번호를 생성 할 수 :

$first = range(1, 49); shuffle($first); 
$second = range(1, 49); shuffle($second); 
$lotto = array_slice($first, 0, 6); 
$lottoMax = array_slice($second, 0, 7); 
1

array_rand() 함수는 배열에서 임의의 선택을 반환합니다.

$all_numbers = range(1, 49); // Create an array of 1 .. 49 
$pick6 = array_rand($all_numbers, 6); 
sort($pick6); 
$pick7 = array_rand($all_numbers, 7); 
sort($pick7); 
1

PHP 배열을 약간 혼란스럽게 할 수있는 적절한 개발 배경이있는 것 같습니다. 그것은 내가 그들을 해시라고 생각하도록 도와줍니다. 채우고 초기화,

$new_array = array(); 

또는 :

당신은 내가 보통 선언 같은 몇 가지 방법으로 배열을 만들 수 있습니다 (? 항상)

$new_array = array(1,2,3,"String") 

PHP의 배열은 보통 동적으로 크기를 지정하고 입력 ... 당신이 원하는만큼 그들을 섞어서 사용할 수 있습니다.

당신은 또한 신속하게 할당하여 배열에 항목을 추가 할 수 있습니다

$new_array[] = "whatever"; //will add it to the end of the array 
$new_array['index'] = "more whatever"; // will insert it with the index 'index' 
$new_array[11] = "last whatever"; // will put it in at numeric index 11 

후자의 두 사람은 아마 분명 그 인덱스에 값을 덮어 쓰게됩니다.

어쨌든 - 다른 도움이 이미 도움이 되었으면 좋겠다는 희망. 여기

은 내가 제안 할 계획이 있었는지,하지만 모두가 그것에 나를 이길 :

$possible_values = range(1,49); 
$array_of_six = array_rand($possible_values,6); 
$array_of_seven = array_rand($possible_values,7); 

이가 다시 기본으로 분류되어 있습니다.

관련 문제