Warning: Array to string conversion in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 808
Warning: foreach() argument must be of type array|object, string given in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 813
Warning: Array to string conversion in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 808
Warning: foreach() argument must be of type array|object, string given in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 813
Warning: Array to string conversion in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 808
Warning: foreach() argument must be of type array|object, string given in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 813
Warning: Array to string conversion in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 808
Warning: foreach() argument must be of type array|object, string given in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 813
Warning: Array to string conversion in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 808
PUM_Utils_Array::move_item( array $ref_arr, string $key1, int|string $move, string|null $key2 = null )
Helper function to move or swap array keys in various ways.
Description Description
PUM_Utils_Array::move_item($arr, ‘move me’, ‘up’); //move it one up PUM_Utils_Array::move_item($arr, ‘move me’, ‘down’); //move it one down PUM_Utils_Array::move_item($arr, ‘move me’, ‘top’); //move it to top PUM_Utils_Array::move_item($arr, ‘move me’, ‘bottom’); //move it to bottom
PUM_Utils_Array::move_item($arr, ‘move me’, -1); //move it one up PUM_Utils_Array::move_item($arr, ‘move me’, 1); //move it one down PUM_Utils_Array::move_item($arr, ‘move me’, 2); //move it two down
PUM_Utils_Array::move_item($arr, ‘move me’, ‘before’, ‘b’); //move it before [‘b’] PUM_Utils_Array::move_item($arr, ‘move me’, ‘up’, ‘b’); //move it before [‘b’] PUM_Utils_Array::move_item($arr, ‘move me’, -1, ‘b’); //move it before [‘b’] PUM_Utils_Array::move_item($arr, ‘move me’, ‘after’, ‘b’); //move it after [‘b’] PUM_Utils_Array::move_item($arr, ‘move me’, ‘down’, ‘b’); //move it after [‘b’] PUM_Utils_Array::move_item($arr, ‘move me’, 1, ‘b’); //move it after [‘b’] PUM_Utils_Array::move_item($arr, ‘move me’, 2, ‘b’); //move it two positions after [‘b’]
Special syntax, to swap two elements: PUM_Utils_Array::move_item($arr, ‘a’, 0, ‘d’); //Swap [‘a’] with [‘d’] PUM_Utils_Array::move_item($arr, ‘a’, ‘swap’, ‘d’); //Swap [‘a’] with [‘d’]
Warning: Array to string conversion in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 808
Warning: foreach() argument must be of type array|object, string given in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 813
Warning: Array to string conversion in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 808
Warning: foreach() argument must be of type array|object, string given in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 813
Warning: Array to string conversion in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 808
Warning: foreach() argument must be of type array|object, string given in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 813
Warning: Array to string conversion in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 808
Warning: foreach() argument must be of type array|object, string given in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 813
Warning: Array to string conversion in /mnt/data/home/502433.cloudwaysapps.com/rhbymdevka/public_html/wp-content/themes/wporg-developer/inc/template-tags.php on line 808
Parameters Parameters
- $ref_arr
-
(Required)
- $key1
-
(Required)
- $move
-
(Required)
- $key2
-
(Optional)
Default value: null
Return Return
(bool)
Source Source
File: classes/Utils/Array.php
public static function move_item( &$ref_arr, $key1, $move, $key2 = null ) { $arr = $ref_arr; if ( $key2 == null ) { $key2 = $key1; } if ( ! isset( $arr[ $key1 ] ) || ! isset( $arr[ $key2 ] ) ) { return false; } $i = 0; foreach ( $arr as &$val ) { $val = [ 'sort' => ( ++ $i * 10 ), 'val' => $val, ]; } // Add a quick keyword `swap` to make syntax simpler to remember. if ( 'swap' === $move ) { $move = 0; } if ( is_numeric( $move ) ) { if ( $move == 0 && $key1 == $key2 ) { return true; } elseif ( $move == 0 ) { $tmp = $arr[ $key1 ]['sort']; $arr[ $key1 ]['sort'] = $arr[ $key2 ]['sort']; $arr[ $key2 ]['sort'] = $tmp; } else { $arr[ $key1 ]['sort'] = $arr[ $key2 ]['sort'] + ( $move * 10 + ( $key1 == $key2 ? ( $move < 0 ? - 5 : 5 ) : 0 ) ); } } else { switch ( $move ) { case 'up': case 'before': $arr[ $key1 ]['sort'] = $arr[ $key2 ]['sort'] - ( $key1 == $key2 ? 15 : 5 ); break; case 'down': case 'after': $arr[ $key1 ]['sort'] = $arr[ $key2 ]['sort'] + ( $key1 == $key2 ? 15 : 5 ); break; case 'top': $arr[ $key1 ]['sort'] = 5; break; case 'bottom': $arr[ $key1 ]['sort'] = $i * 10 + 5; break; default: return false; } } uasort( $arr, [ __CLASS__, 'sort_by_sort' ] ); foreach ( $arr as &$val ) { $val = $val['val']; } $ref_arr = $arr; return true; }
Expand full source code Collapse full source code View on Trac