Blueprints/src/BlueprintForm.php
protected function doReorder(array $items, array $keys)
    {
        $reordered = array_keys($items);

        foreach ($keys as $item => $ordering) {
            if ((string)(int) $ordering === (string) $ordering) {
                $location = array_search($item, $reordered, true);
                $rel = array_splice($reordered, $location, 1);
                array_splice($reordered, $ordering, 0, $rel);

            } elseif (isset($items[$ordering])) {
                $location = array_search($item, $reordered, true);
                $rel = array_splice($reordered, $location, 1);
                $location = array_search($ordering, $reordered, true);
                array_splice($reordered, $location + 1, 0, $rel);
            }
        }

        return array_merge(array_flip($reordered), $items);
    }
protected function doReorder(array $items, array $keys)
    {
        $reordered = array_keys($items);

        foreach ($keys as $item => $ordering) {
            if ((string)(int) $ordering === (string) $ordering) {
                $location = array_search($item, $reordered, true);
                $rel = array_splice($reordered, $location, 1);
                array_splice($reordered, $ordering, 0, $rel);

            } elseif (isset($items[$ordering])) {
                $location = array_search($item, $reordered, true);
                $rel = array_splice($reordered, $location, 1);
                $location = array_search($ordering, $reordered, true);
                array_splice($reordered, $location + 1, 0, $rel);
            }
        }

        return array_merge(array_flip($reordered), $items);
    }
protected function doReorder ( array $ items , array $ keys ) { $ reordered = array_keys ( $ items ) ; foreach ( $ keys as $ item => $ ordering ) { if ( ( string ) ( int ) $ ordering === ( string ) $ ordering ) { $ location = array_search ( $ item , $ reordered , true ) ; $ rel = array_splice ( $ reordered , $ location , 1 ) ; array_splice ( $ reordered , $ ordering , 0 , $ rel ) ; } elseif ( isset ( $ items [ $ ordering ] ) ) { $ location = array_search ( $ item , $ reordered , true ) ; $ rel = array_splice ( $ reordered , $ location , 1 ) ; $ location = array_search ( $ ordering , $ reordered , true ) ; array_splice ( $ reordered , $ location + 1 , 0 , $ rel ) ; } } return array_merge ( array_flip ( $ reordered ) , $ items ) ; }
Internal function to reorder items.

@param array $items
@param array $keys
@return array
Internal function to reorder items .