2016-04-21 62 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; 
相关问题