2016-06-14 3 views
-3

큰 질문이 있습니다. 이 배열에 대한 결과가 있어야한다 그래서지정된 키를 가진 배열 생성

Array 
(
    [2] => 566 
    [9] => 1946 
) 

내가 ...이 예를 들어, 배열의 키는 1 ~ 7 무작위로 할 필요가, 배열을 생성해야합니다 :이 배열을

Array 
(
    [1] => 566 
    [5] => 566 
    [1] => 1946 
    [6] => 1946 
    [2] => 1946 
    [5] => 1946 
    [7] => 1946 
    [6] => 1946 
    [3] => 1946 
    [4] => 1946 
    [7] => 1946 
) 

그래서 556에 2가 있으므로 1.78 사이의 키를 임의로 두 번 배열에 넣습니다. 1946 년에는 처음부터 9 명이있었습니다. 그리고이 id에 대해 1.9 사이의 키를 가진 9 번 어레이에 넣으십시오. 도와주세요, 제발. Thx 사전에

+0

일부 등호가있는 배열을 만들 수 없습니다. – splash58

+0

그 결과를 얻을 수 없습니다. 동일한 키가 여러 개있는 배열은 가질 수 없습니다. –

+0

배열에 키가 있어야합니까? 그 결과 객체의 배열 일 수 있습니까? '[0] => {x : 7, number : 566}, [1] => {x : 7, number : 1946} – Jeff

답변

0

PHP 배열 키에는 고유입니다. 정의에 따르면이 구현의 구체성을 고려할 때 요구 사항을 충족시킬 수 없습니다. 당신은 당신이 두 개의 고유 값 (5661946)를 가지고 있음을 고려한다면

대신하는 당신이 17 사이의 임의의 값의 임의의 수 (고유하지)를 생성하려면, 다음 역은 사용 가능하다 값은 5661946입니다.

$uniqueValues = [2 => 566, 9 => 1946]; 
$newValues = []; 

function getRandomNumbers($n, $i, $j) 
{ 
    $values; 
    for($s = 0; $s < $n; $s++) { 
     $values[] = mt_rand($i, $j); 
    } 
    return $values; 
} 

foreach($uniqueValues as $n => $value) { 
    $newValues[$value] = getRandomNumbers($n, 1, 7); 
} 

var_dump($newValues); 

이 ... 다음과 유사한 출력 뭔가를해야

당신이 대신 여기에 도착하면, 키가 당신이 가지고있는 값의 고유 한 집합을 의미 배열의 배열입니다
array(2) { 
    [566]=> 
    array(2) { 
    [0]=> 
    int(6) 
    [1]=> 
    int(5) 
    } 
    [1946]=> 
    array(9) { 
    [0]=> 
    int(4) 
    [1]=> 
    int(2) 
    [2]=> 
    int(6) 
    [3]=> 
    int(6) 
    [4]=> 
    int(5) 
    [5]=> 
    int(2) 
    [6]=> 
    int(2) 
    [7]=> 
    int(2) 
    [8]=> 
    int(7) 
    } 
} 

난수 배열.