BP_Document::array_msort( $array, $cols )
Sort data based on order.
Description
Parameters
- $array
-
(Required)
- $cols
-
(Required)
Return
(array|mixed)
Source
File: bp-document/classes/class-bp-document.php
public static function array_msort( $array, $cols ) {
$array = json_decode( json_encode( $array ), true );
$colarr = array();
foreach ( $cols as $col => $order ) {
$colarr[ $col ] = array();
foreach ( $array as $k => $row ) {
$colarr[ $col ][ '_' . $k ] = strtolower( $row[ $col ] );
}
}
$eval = 'array_multisort(';
foreach ( $cols as $col => $order ) {
$eval .= '$colarr[\'' . $col . '\'],' . $order . ',';
}
$eval = substr( $eval, 0, - 1 ) . ');';
eval( $eval );
$ret = array();
foreach ( $colarr as $col => $arr ) {
foreach ( $arr as $k => $v ) {
$k = substr( $k, 1 );
if ( ! isset( $ret[ $k ] ) ) {
$ret[ $k ] = $array[ $k ];
}
$ret[ $k ][ $col ] = $array[ $k ][ $col ];
}
}
if ( ! empty( $ret ) ) {
$i = 0;
$arr = array();
foreach ( $ret as $k => $v ) {
$ret[ $i ] = (object) $v;
$arr[ $i ] = (object) $v;
$i ++;
}
}
return $arr;
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.4.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.