PHP 混合显示 array_push 和 array_rand 本帖最后由 mumubangditu 于 2011-07-10 08:25:10 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 怎样才能混合显示呢?换了一种方法,用shuffle还是不能把次序给打乱。依旧是15个f1()先显示,再10个f2()显示,最后5个f3()显示。求助。for ($i = 0; $i < 15; $i++) { $f1 .= f1();}for ($i = 0; $i < 10; $i++) { $f2 .= f2();}for ($i = 0; $i < 5; $i++) { $f3 .= f3();}$newarray = array($f1,$f2,$f3);echo shuffle($newarray); f1()、f2()、f3()三个函数中的$row变量都是局部变量,你得传递进去才行,随机显示的问题,这样试试:function f1($row){echo '<p style="width:100px;height:20px;float:left;background:#999 none;">'.$row['word'].'</p>';}function f2($row){echo '<p style="width:200px;height:20px;float:left;background:#ccc none;">'.$row['word'].'</p>';}function f3($row){echo '<p style="width:300px;height:20px;float:left;background:#eee none;">'.$row['word'].'</p>';}echo '<div style="width:1000px;height:200px;background-color:#333;">';for($i = 0; $i < 15; $i ++) $sizes[] = f1($row);for($i = 0; $i < 10; $i ++) $sizes[] = f2($row);for($i = 0; $i < 5; $i ++) $sizes[] = f3($row);shuffle($size);for($i = 0; $i < 30; $i ++) echo $sizes[$i]; shuffle($size); //数组变量名打错了,改为shuffle($sizes); 你这么写当然不行!你的 f1、f2、f3 函数中都是 echo,只要执行到,就已经输出了。 对啊还有,原来写的代码中$f1、$f2、$f3赋的都是array_push()的返回值,这个函数返回的是新的数组元素数量,对楼主的需求来说是没有意义的。 T5500 ,还是无法混合啊,把<?phpfunction f1(){ echo "<p class=position1 style=\"float:left;width:100px;height:10px;background:#999 none;\"></p>";}function f2(){ echo "<p class=position2 style=\"float:left;width:100px;height:20px;background:#ccc none;\"></p>";}function f3(){ echo "<p class=position3 style=\"float:left;width:100px;height:30px;background:#eee none;\"></p>";}echo '<div id="display" style="width:1000px;height:200px;background-color:#333;">';for($i = 0; $i < 15; $i ++) $sizes[] = f1($row);for($i = 0; $i < 10; $i ++) $sizes[] = f2($row);for($i = 0; $i < 5; $i ++) $sizes[] = f3($row);shuffle($sizes);for($i = 0; $i < 30; $i ++) echo $sizes[$i];echo '</div>';?>把P里的文字改成颜色,看的清楚点。结果还是1大块1大块的。我要的效果是三种p的30个小块随机混合在一起。谢谢。 那应该怎么改?不用function,直接赋值? “shuffle() expects parameter 1 to be array。”<?php$f1 .="<p class=position1 style=\"float:left;width:100px;height:10px;background:#999 none;\"></p>";$f2 .="<p class=position2 style=\"float:left;width:100px;height:20px;background:#ccc none;\"></p>";$f3 .="<p class=position3 style=\"float:left;width:100px;height:30px;background:#eee none;\"></p>";echo '<div style="width:1000px;height:200px;background-color:#333;">';for($i = 0; $i < 15; $i ++) $sizes[] = $f1;for($i = 0; $i < 10; $i ++) $sizes[] = $f2;for($i = 0; $i < 5; $i ++) $sizes[] = $f3;shuffle($size);for($i = 0; $i < 30; $i ++) echo $sizes[$i];?> function f1($row){echo '<p style="width:100px;height:20px;float:left;background:#999 none;">'.$row['word'].'</p>';}function f2($row){return '<p style="width:200px;height:20px;float:left;background:#ccc none;">'.$row['word'].'</p>';}function f3($row){return '<p style="width:300px;height:20px;float:left;background:#eee none;">'.$row['word'].'</p>';}echo '<div style="width:1000px;height:200px;background-color:#333;">';$sizes = array();for($i = 0; $i < 15; $i ++) $sizes[] = f1($row);for($i = 0; $i < 10; $i ++) $sizes[] = f2($row);for($i = 0; $i < 5; $i ++) $sizes[] = f3($row);shuffle($sizes);for($i = 0; $i < 30; $i ++) echo $sizes[$i]; 测试$ar = array_merge(array_fill(0,15,100), array_fill(0,10,200), array_fill(0,5,300));shuffle($ar);foreach($ar as $k=>$v) echo "<p style='width:{$v}px;height:20px;float:left;background:#999 none;'>$k</p>"; 获取上层函数名 关于input表单value问题 表单参数连续传递问题 数据库插入时的问题。 关于学习PHP面向对象 函数问题。function() 无限级分类的东西在前台怎么展示? 如何指定$_REQUEST 取得Form表单提交上来的数据? 请教我做二次开发,修改其中一个php文件,修改后报错,说不能修改该文件?? 谁给讲一下电子购物中session的用法 php新人求助,如何调用dll 关于ajax的一个小问题
for ($i = 0; $i < 15; $i++) {
$f1 .= f1();
}
for ($i = 0; $i < 10; $i++) {
$f2 .= f2();
}
for ($i = 0; $i < 5; $i++) {
$f3 .= f3();
}
$newarray = array($f1,$f2,$f3);
echo shuffle($newarray);
function f1($row){
echo '<p style="width:100px;height:20px;float:left;background:#999 none;">'.$row['word'].'</p>';
}
function f2($row){
echo '<p style="width:200px;height:20px;float:left;background:#ccc none;">'.$row['word'].'</p>';
}
function f3($row){
echo '<p style="width:300px;height:20px;float:left;background:#eee none;">'.$row['word'].'</p>';
}echo '<div style="width:1000px;height:200px;background-color:#333;">';for($i = 0; $i < 15; $i ++) $sizes[] = f1($row);
for($i = 0; $i < 10; $i ++) $sizes[] = f2($row);
for($i = 0; $i < 5; $i ++) $sizes[] = f3($row);
shuffle($size);for($i = 0; $i < 30; $i ++) echo $sizes[$i];
你的 f1、f2、f3 函数中都是 echo,只要执行到,就已经输出了。
还有,原来写的代码中$f1、$f2、$f3赋的都是array_push()的返回值,这个函数返回的是新的数组元素数量,对楼主的需求来说是没有意义的。
<?php
function f1()
{
echo "<p class=position1 style=\"float:left;width:100px;height:10px;background:#999 none;\"></p>";
}
function f2()
{
echo "<p class=position2 style=\"float:left;width:100px;height:20px;background:#ccc none;\"></p>";
}
function f3()
{
echo "<p class=position3 style=\"float:left;width:100px;height:30px;background:#eee none;\"></p>";
}echo '<div id="display" style="width:1000px;height:200px;background-color:#333;">';
for($i = 0; $i < 15; $i ++) $sizes[] = f1($row);
for($i = 0; $i < 10; $i ++) $sizes[] = f2($row);
for($i = 0; $i < 5; $i ++) $sizes[] = f3($row);
shuffle($sizes);
for($i = 0; $i < 30; $i ++) echo $sizes[$i];echo '</div>';
?>
把P里的文字改成颜色,看的清楚点。结果还是1大块1大块的。
我要的效果是三种p的30个小块随机混合在一起。谢谢。
<?php
$f1 .="<p class=position1 style=\"float:left;width:100px;height:10px;background:#999 none;\"></p>";
$f2 .="<p class=position2 style=\"float:left;width:100px;height:20px;background:#ccc none;\"></p>";
$f3 .="<p class=position3 style=\"float:left;width:100px;height:30px;background:#eee none;\"></p>";echo '<div style="width:1000px;height:200px;background-color:#333;">';for($i = 0; $i < 15; $i ++) $sizes[] = $f1;
for($i = 0; $i < 10; $i ++) $sizes[] = $f2;
for($i = 0; $i < 5; $i ++) $sizes[] = $f3;
shuffle($size);for($i = 0; $i < 30; $i ++) echo $sizes[$i];
?>
echo '<p style="width:100px;height:20px;float:left;background:#999 none;">'.$row['word'].'</p>';
}
function f2($row){
return '<p style="width:200px;height:20px;float:left;background:#ccc none;">'.$row['word'].'</p>';
}
function f3($row){
return '<p style="width:300px;height:20px;float:left;background:#eee none;">'.$row['word'].'</p>';
}echo '<div style="width:1000px;height:200px;background-color:#333;">';$sizes = array();
for($i = 0; $i < 15; $i ++) $sizes[] = f1($row);
for($i = 0; $i < 10; $i ++) $sizes[] = f2($row);
for($i = 0; $i < 5; $i ++) $sizes[] = f3($row);
shuffle($sizes);for($i = 0; $i < 30; $i ++) echo $sizes[$i];
$ar = array_merge(array_fill(0,15,100), array_fill(0,10,200), array_fill(0,5,300));
shuffle($ar);foreach($ar as $k=>$v)
echo "<p style='width:{$v}px;height:20px;float:left;background:#999 none;'>$k</p>";