<?php
while($row=mysql_fetch_array($result))
{
list($x1,$y1) = explode('|',$row['xyz1']);
list($x2,$y2) = explode('|',$row['xyz2']);
……
$left=array($x1,$x2,……);
$top=array($y1,$y2,……);
}
 $notes.= '<div class="note" style="left:'.$left.'px;top:'.$top.'px"></div>'; 
?> <?php echo $notes;?> $x1,$x2,$y1,$y2存放的是DIV的TOP,LEFT坐标
但echo出来后只能看到一个DIV 而且并没有取得$left,$top的值如果我写成
<div class="note" style="left:'.$left[0].'px;top:'.$top[0].'px"></div>'
或者
<div class="note" style="left:'.$left[1].'px;top:'.$top[1].'px"></div>'
则可以正常显示由于我要echo的DIV很多,所以不可能自己一个一个地列举,请问怎么用单个句子把所有的DIV全部echo出来呢试过用for判断
for($i=0;$i<100;$i++)
{
echo "
<div class="note" style="left:'.$left['.$i.'].'px;top:'.$top['.$i.'].'px"></div>'
";
}

'.$left['.$i.'].'  不知道正确的表达方式是怎样的另外
{
list($x1,$y1) = explode('|',$row['xyz1']);
list($x2,$y2) = explode('|',$row['xyz2']);
……
$left=array($x1,$x2,……);
$top=array($y1,$y2,……);
}
这个语句有什么方法可以直接合并为类似于下面这种表达式
list($left,$top)=array(explode('|',$row['xyz1']),explode('|',$row['xyz2']),……)
不然的话也是得自己一个个地列举出来

解决方案 »

  1.   

    看看这个$ar = array (
    array(
     'xy1' => '1,2',
     'xy2' => '3,4',
     'xy3' => '5,6',
     'xy4' => '7,8',
    ),
    array(
     'xy1' => '11,12',
     'xy2' => '13,14',
     'xy3' => '15,16',
     'xy4' => '17,18',
    ),
    );foreach($ar as $r)
      foreach($r as $v)
        list($x[], $y[]) = explode(',', $v);print_r($x);
    print_r($y);
    Array
    (
        [0] => 1
        [1] => 3
        [2] => 5
        [3] => 7
        [4] => 11
        [5] => 13
        [6] => 15
        [7] => 17
    )
    Array
    (
        [0] => 2
        [1] => 4
        [2] => 6
        [3] => 8
        [4] => 12
        [5] => 14
        [6] => 16
        [7] => 18
    )
      

  2.   

    echo "<div class=\"note" style=\"left:{$left[$i]}px;top:{$top[$i]}px\"></div>"; 或者:
    echo "
    <div class='note' style='left:".$left[$i]."px;top:".$top[$i]."px'></div>
    ";