移动到数组中的项目但保持排序

时间:2011-02-24 12:48:15

标签: php arrays

我有一个循环的数组(作为javascript标志旋转器的一部分)

<div id="featured" >
<ul> 
<?php
    foreach ($rows as $key => $item) {  
?>
    <li>
        <a href="<?php echo $item->link;?>"><img src="images/stories/thumb_<?php echo strtolower($item->title);?>.jpg" title="<?php echo $item->title?>" alt="<?php echo $item->title?>"/></a>
    </li>
<?php
    }
?>  
</ul> 

这始终在数组中的第一个项目处启动旋转器(由模型返回)。如果我单击数组中的项目,我希望旋转器从单击的项目开始。如何移动到数组中的右侧元素并保持顺序相同?

编辑:

为了澄清,这些项目是从数据库返回的。这些物品根据特定的订购字段进行排序。我想要获得的是:

默认操作 1,2,3,4,5

所选项目= 3

3,4,5,1,2

我需要在PHP中执行此操作。

1 个答案:

答案 0 :(得分:0)

使用Yent的回答

$currentLink = htmlspecialchars(JRequest::getURI());
//Loop through and match URLs
foreach ($rows as $key => $item) {
    $arrayLink = $item->link;
    if ($arrayLink == $currentLink) {
        $index = $key;
    }
}
//Reorder the array
$rows = array_merge(array_slice($rows, $index, null, true), array_slice($rows, 0, $index, true));

我唯一的问题是,由于缩略图和旋转器的主要图像由同一列表驱动,我生成的图库会移动项目。可能不得不修补js。