Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
09/10/2016 05:14:34 PM (4 years ago)
Author:
dcavins
Message:

bp_sort_by_key(): Add $preserve_keys parameter.

Add a parameter to bp_sort_by_key() so that it calls either usort()
or uasort(), depending on the whether the array keys are important or
not.

Fixes #7238.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/testcases/core/functions.php

    r11019 r11082  
    427427
    428428        $this->assertEquals( $expected, bp_alpha_sort_by_key( $items, 'name' ) );
     429    }
     430
     431    /**
     432     * @group bp_sort_by_key
     433     */
     434    public function test_bp_sort_by_key_arrays_num_preserve_keys() {
     435        $items = array(
     436            'p' => array(
     437                'foo' => 'bar',
     438                'value' => 5,
     439            ),
     440            'q' => array(
     441                'foo' => 'bar',
     442                'value' => 10,
     443            ),
     444            'r' => array(
     445                'foo' => 'bar',
     446                'value' => 1,
     447            ),
     448        );
     449
     450        $expected = array(
     451            'r' => array(
     452                'foo' => 'bar',
     453                'value' => 1,
     454            ),
     455            'p' => array(
     456                'foo' => 'bar',
     457                'value' => 5,
     458            ),
     459            'q' => array(
     460                'foo' => 'bar',
     461                'value' => 10,
     462            ),
     463        );
     464
     465        $this->assertEquals( $expected, bp_sort_by_key( $items, 'value', 'num', true ) );
     466    }
     467
     468    /**
     469     * @group bp_sort_by_key
     470     */
     471    public function test_bp_sort_by_key_num_should_respect_0_preserve_keys() {
     472        $items = array(
     473            's' => array(
     474                'foo' => 'bar',
     475                'value' => 2,
     476            ),
     477            't' => array(
     478                'foo' => 'bar',
     479                'value' => 0,
     480            ),
     481            'u' => array(
     482                'foo' => 'bar',
     483                'value' => 4,
     484            ),
     485        );
     486
     487        $expected = array(
     488            't' => array(
     489                'foo' => 'bar',
     490                'value' => 0,
     491            ),
     492            's' => array(
     493                'foo' => 'bar',
     494                'value' => 2,
     495            ),
     496            'u' => array(
     497                'foo' => 'bar',
     498                'value' => 4,
     499            ),
     500        );
     501
     502        $this->assertEquals( $expected, bp_sort_by_key( $items, 'value', 'num', true ) );
    429503    }
    430504
Note: See TracChangeset for help on using the changeset viewer.