2016-04-21 72 views
2

我試圖從一個PHP數組中生成一個列表,當用戶輸入一個數字時,說3,那麼只有3個數組中的每個元素將被顯示。如何從PHP數組中生成一定的數量?

例子:

$number_to_generate = 3; 
jobs = array('Academic', 'Administrator', 'Architect',.......); 

Output: 
Academic 
Academic 
Academic 
Administrator 
Administrator 
Administrator  
Architect 
Architect 
Architect 

這是我目前有:

// Check if tmp_profession_array is empty 
// If it is empty grab any random profession and add it to the tmp_profession_array 
array_filter($tmp_profession_array); 
if (empty($tmp_profession_array)) { 
    $Profession = array_rand($professions_array, 1); 
    $tmp_profession_array[$Profession] = 1; 
} else { 
    // If it is not empty, grab the last profession from it 
    end($tmp_profession_array); 
    $Profession = key($tmp_profession_array); 
    //// If it is not less than the amount to generate grab a new profession that does not exist in the tmp_profession_array 
    if ($tmp_profession_array[$Profession] > $number_to_generate) { 
     $break = TRUE; 
     while ($break) { 
      if (in_array($Profession, $tmp_profession_array)) { 
       $Profession = array_rand($professions_array, 1); 
      } else { 
       $break = FALSE; 
      } 
     } 
    //// If the profession count is less than the amount to generate then use it 
    } elseif ($tmp_profession_array[$Profession] < $number_to_generate) { 
     $tmp_profession_array[$Profession] += 1; 
    } 
} 
+0

哇:)你是怎麼來到這個實現? –

回答

3

很容易,如果我理解你想要正確地做什麼。

// How many times you want to see each job? 
$numberToGenerate = 3; 

// List of jobs you have 
$jobs = array('Academic', 'Administrator', 'Architect'); 

// Loop on all the jobs 
foreach($jobs as $job){ 
    // Loop $numberToGenerate times 
    for($i=0; $i < $numberToGenerate; $i++){ 
     // Echo to output 
     echo $i.'-'.$job.'<br />'; 
    } 
} 

// Done 
exit;