如何从PHP数组中生成一定数量?

时间:2016-04-21 21:00:19

标签: php arrays loops

我试图从PHP数组生成一个列表,当用户输入一个数字时,例如3,那么数组中每个元素只会显示3个。

示例:

$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;
    }
}

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;