PHP数组内元素移动方法 最近写相册程序有个 - Assbbs

PHP数组内元素移动方法 最近写相册程序有个排序需要,即将指定ID的图片向前/后移动指定位数。如果移动位数超出数组内容,则最多移动至开头/末尾。网上找了一下没有什么好用的函数,有些很复杂而且只能移动一位,于是自己写了一个供大家参考。 <?php $a=array & 39;a& 39;,& 39;b& 39;,& 39;c& 39;,& 39;d& 3…

PHP数组内元素移动方法 最近写相册程序有个排序需要,即将指定ID的图片向前/后移动指定位数。如果移动位数超出数组内容,则最多移动至开头/末尾。网上找了一下没有什么好用的函数,有些很复杂而且只能移动一位,于是自己写了一个供大家参考。 <?php $a=array & 39;a& 39;,& 39;b& 39;,& 39;c& 39;,& 39;d& 39;,& 39;e& 39;,& 39;f& 39;,& 39;g& 39;,& 39;h& 39;,& 39;i& 39; ; //这是要操作的数组 $p=& 39;f& 39;; //指定要移动元素& 39;f& 39;。 $m=-2; //把元素向前移动2位(向后为正数)。 $i=array keys $a,$p & 39;0& 39; ; //读出元素索引次序 array splice $a, $i+$m >0?$i+$m:0 ,0,array splice $a,$i,1 ; //数组移动操作 print r $a ; //输出改变后的数组 注意:本函数适用于没有重复值的数组!