使用php数组中的键来排序和更改div显示顺序

时间:2011-10-08 02:14:02

标签: php jquery arrays sorting html

我有一个动态php变量数组,它们是几个d​​iv id的关键。我正在寻找一种方法来排序PHP数量并使用该序列重新排序我的div。我已经找到了一些关于如何使用jquery根据数组输入重新排序div的线程,但是它们都与我的技能水平差别不足,我无法有效地调整它们的建议。这是一个非常接近我正在尝试的线程。 Dynamically arranging divs using jQuery

明确解释我的目标:参赛者筹集资金,每个人都有筹款页面。 php变量是他们从页面中提取的金额。该函数将命令页面上的div首先显示最高收入者,依此类推。

下面的代码反映了我的布局,但是我应该澄清我的div都有独特的内容,因此动态生成对他们不起作用。

<?php 

$Contestants = array(
    $Totals[0] => 'contestant0', 
    $Totals[1] => 'contestant1',
    $Totals[2] => 'contestant2'
);

krsort ($Contestants);

?>

<div id="container">
 <div id="contestant0">
  <p><?php print ($Totals[0]) ?></p> 
 </div>
 <div id="contestant1">
  <p><?php print ($Totals[1]) ?></p> 
 </div>
 <div id="contestant2">
  <p><?php print ($Totals[2]) ?></p> 
 </div>
</div>

我知道我所提供的代码是如何准确的,但是我认为这些javascript是无用的,而且最让人尴尬。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

不需要jQuery,除非我遗漏了什么。

<?php 

$Contestants = array(
    $Totals[0] => 'contestant0', 
    $Totals[1] => 'contestant1',
    $Totals[2] => 'contestant2'
);

rsort ($Contestants);

?>


<div id="container">
<?php foreach( $Contestants as $k => $v ) { ?>  
   <div id="<?php echo $v ?>">
     <p><?php echo $k ?></p> 
    </div>
<?php } ?>
</div> 

答案 1 :(得分:0)

在JSfiddle上做了一个简单的例子:

http://jsfiddle.net/2U7fv/4/

听起来你需要使用标准的JS方法“sort()”,它采用比较两个参数的两个参数方法,如果参数B应该在参数A之前排序,则返回值1或更多。http://www.w3schools.com/jsref/jsref_sort.asp

所以过程是:

  • 将所有div放入数组
  • 通过排序方法运行数组
    • 排序方法:
    • 获取两个div的捐款金额
    • 解析美元符号
    • 如果B更高则返回1或更多,如果A更高则返回0或更少
  • 返回已排序的DOM节点数组
  • 将该数组转换为一个长HTML字符串
  • 将#container html设置为该字符串