我正在尝试编写代码,并且可以使用一些帮助。假设我有一个5种颜色的测试文件。我只希望每种颜色使用10次。
编辑:编辑代码以反映我的设置。主要需要制作一个我可以调用的函数来返回我的5种颜色中的1种,这些颜色已经使用了10次以上。
$colors = array_map("trim", file("colorlist.txt")); //loads all my colors
// echos all my colors
foreach($colors as $color){
echo ''.$color;
}
function checklimit($string){
BS CODING......
$currentcolor = getcolor();
}
function getcolor() {
$totalpercolor = 10;
If all $colors $totalused = $totalpercolor {
exit;
} else {
shuffle($colors)
Return a single color who's $totalused < $totalpercolor;
$color's $totalused = $totalused++
}
}
$result = mysql_query("SELECT whatever FROM $table_name WHERE doesntmatter IS NULL");
while ($row = mysql_fetch_assoc($results)){
$data = checklimit($string);
}
单位:
$colors = array(file("colorlist.txt"));
$i = 1;
foreach($colors as $color){
if color[i] <= 10 {
var color[i] = 0++;
i++;
} else {
If all colors = 10 {
end;
} else {
start loop over, get new color
}
}
}
我确信这不是正确的方法。所以任何帮助都会很棒。
答案 0 :(得分:0)
foreach($colors as $color){
if($color_num[$color])
$color_num[$color]++;
else $color_num[$color] = 1;
}
在循环结束时,你有一个$ color_num数组,每个颜色的数量。现在您可以添加一些循环检查,例如。 if($color_num[$color] >= 10) ...
- 但实际上你应该发布有效的代码,这样我们就可以提供建设性的答案。
答案 1 :(得分:0)
你可以简单地拥有
加载颜色
$colors = array_map("trim", file("log.txt"));
printf("%s\n", implode(",", $colors)); //red,blue,orage,black,purble
要重复使用颜色,您可以使用modulus
$total = count($colors);
$limit = 10;
for($i = 0; $i < $limit; $i ++) {
echo $colors[$i % $total], PHP_EOL;
}
或无限迭代器
$limit = 10;
$iterator = new InfiniteIterator(new ArrayIterator($colors));
foreach(new LimitIterator($iterator, 0, $limit) as $color) {
echo $color, PHP_EOL;
}
两者都会返回
red
blue
orage
black
purble
red
blue
orage
black
purble
答案 2 :(得分:0)
我不知道你想要什么,所以我只回答你可能想要的三个案例: 如果您需要打印每个collor 10次,然后继续下一个颜色
$colors = array_map("trim", file('colorlist.txt'));
foreach ($colors as $color)
{
for ($i=1; $i<=10; $i++)
print $color . PHP_EOL;
}
将输出:
blue
blue
blue
blue
blue
blue
blue
blue
blue
blue
green
green
green
green
green
green
green
green
green
green
(the other 3 colors)
如果您需要按顺序输出颜色:
$colors = array_map("trim", file('colorlist.txt'));
for ($i=1; $i<=10; $i++)
{
foreach($colors as $color)
print $color . PHP_EOL;
}
输出你:
blue
green
red
pink
gray
blue
green
red
pink
gray
如果你需要随机输出颜色,每种颜色必须出现10次:
$colors_file = array_map("trim", file('colorlist.txt'));
foreach ($colors_file as $color)
$colors[] = array($color, 0);
while(!empty($colors))
{
$index = rand(0,count($colors)-1);
echo $colors[$index][0] . PHP_EOL;
if (++$colors[$index][1] == 19)
{
unset($colors[$index]);
$colors = array_values($colors);
}
}
将输出:
pink
red
red
blue
gray
blue
green
blue
gray
gray
green
red
red