<?php /** * Sort Helper Functions * * @package WP_Ultimo\Functions * @since 2.0.11 */ // Exit if accessed directly defined('ABSPATH') || exit; /** * Sort arrays based on a particular column. * * @since 2.0.0 * * @param array $a The first array. * @param array $b The second array. * @param string $column The column to compare. * @return int */ function wu_sort_by_column($a, $b, $column = 'order') { $a[ $column ] = isset($a[ $column ]) ? (int) $a[ $column ] : 50; $b[ $column ] = isset($b[ $column ]) ? (int) $b[ $column ] : 50; return $a[ $column ] - $b[ $column ]; } /** * Sorts the fields. * * @param array $a The first array containing a order key. * @param array $b The second array containing a order key. * @return int */ function wu_sort_by_order($a, $b) { return wu_sort_by_column($a, $b, 'order'); } /** * Loops through the list items and adds a order key if none is set, based on the index. * * @since 2.0.7 * * @param array $list The list of sortable elements. * @param string $order_key The order key. * @return array */ function wu_set_order_from_index($list, $order_key = 'order') { $index = 1; foreach ($list as &$item) { if (isset($item[ $order_key ]) === false) { $index = $index ?: 1; // phpcs:ignore $item[ $order_key ] = $index * 10; ++$index; } } return $list; }