Ask a Question related to PHP Development, Design and Development.

  1. #1

    Default sort array by key

    Hi,

    What I want is simple, but I can't figure it out at the moment.

    Let's say this is an array names $matches:

    Array
    (
    [0] => Array
    (
    [teamid] => 137
    [teamnaam] => Weet ik Veel ??
    [speeldagid] => vr
    [speeldagvolgnr] => 5
    )

    [1] => Array
    (
    [teamid] => 27
    [teamnaam] => Tycoon
    [speeldagid] => di
    [speeldagvolgnr] => 2
    )

    [2] => Array
    (
    [teamid] => 36
    [teamnaam] => Arabier 1
    [speeldagid] => do
    [speeldagvolgnr] => 4
    )

    [3] => Array
    (
    [teamid] => 105
    [teamnaam] => Road Runners
    [speeldagid] => do
    [speeldagvolgnr] => 4
    )
    )

    And I want to sort it on key 'speeldagvolgnr', how do I do this?
    So I want the array back


    Array
    (
    [0] => Array
    (
    [teamid] => 27
    [teamnaam] => Tycoon
    [speeldagid] => di
    [speeldagvolgnr] => 2
    )

    [1] => Array
    (
    [teamid] => 36
    [teamnaam] => Arabier 1
    [speeldagid] => do
    [speeldagvolgnr] => 4
    )

    [2] => Array
    (
    [teamid] => 105
    [teamnaam] => Road Runners
    [speeldagid] => do
    [speeldagvolgnr] => 4
    )
    [3] => Array
    (
    [teamid] => 137
    [teamnaam] => Weet ik Veel ??
    [speeldagid] => vr
    [speeldagvolgnr] => 5
    )
    )




    I have looked at the sort functions at PHP.net, but could not find the
    solution.

    Can you help me out? Thanx.

    Boefje Guest

  2. Similar Questions and Discussions

    1. Sort Array in datagrid
      How do you sort an array in your datagrid? I always want to be able to sort my array by an instance number. If you add a new instance I want it to...
    2. Sort Array
      Hi Can anyone give me a pointer on sorting this array below #curr.getRateCurrencyCode()# (lowest to highest values) <cfloop from ='1' to...
    3. Sort a 2D array
      Hello, I have a 2D array which I would like to sort. I take a simple example: $tab = 'toto';$tab = 'toto'; $tab = 'aaaa';$tab = 'titi'; $tab...
    4. sort w/o using an array
      I am trying to figure out if there is a way to do a sort that doesn't involve putting an entire file in memory. This kind of thing is available in...
    5. Help me sort a two - d array
      I need help sorting a multidimensional array. I have an array myarray(column_no, row_no) it has 5 columns for this example I have used 4 rows...
  3. #2

    Default Re: sort array by key

    Boefje wrote:
    > I have looked at the sort functions at PHP.net, but could not find the
    > solution.
    >
    You have missed usort():

    function cmp($a, $b) {
    if ($a['speeldagvolgnr'] == $b['speeldagvolgnr']) {
    return 0;
    }
    return ($a['speeldagvolgnr'] < $b['speeldagvolgnr']) ? -1 : 1;
    }

    usort($matches, "cmp");


    JW



    Janwillem Borleffs Guest

  4. #3

    Default Re: sort array by key

    Boefje wrote:

    Don't multipost (same question asked in alt.comp.lang.php in a seperate
    thread)
    > Indeed. Thanks.
    >
    > An example...
    >
    Did you test your example? Then you will have realised that your multi_sort
    function doesn't work. The following will:

    function multi_sort(&$array, $key) {
    usort($array,
    create_function(
    '$a,$b',
    'if ($a["'.$key.'"] == $b["'.$key.'"]) return 0;' .
    'return ($a["'.$key.'"] < $b["'.$key.'"]) ? -1 : 1;'
    )
    );
    }


    JW



    Janwillem Borleffs Guest

  5. #4

    Default Re: sort array by key


    Janwillem Borleffs wrote:
    > *Boefje wrote:
    >
    > Don't multipost (same question asked in alt.comp.lang.php in a
    > seperate
    > thread)
    >
    > > Indeed. Thanks.
    > >
    > > An example...
    > >
    >
    > Did you test your example? Then you will have realised that your
    > multi_sort
    > function doesn't work. The following will:
    >
    > function multi_sort(&$array, $key) {
    > usort($array,
    > create_function(
    > '$a,$b',
    > 'if ($a["'.$key.'"] == $b["'.$key.'"]) return 0;' .
    > 'return ($a["'.$key.'"] < $b["'.$key.'"]) ? -1 : 1;'
    > )
    > );
    > }
    >
    >
    > JW *



    Hi!
    Why the below example doesn't work?

    function cmp ($a, $b) {
    if ($a["speeldagvolgnr"] == $b["speeldagvolgnr"]) {
    return 0;
    }
    return ($a["speeldagvolgnr"] < $b["speeldagvolgnr"]) ? -1 : 1;
    }

    uksort($tab,"cmp");

    and the next example works very fine?

    function multi_sort(&$array, $key) {
    usort($array,
    create_function(
    '$a,$b',
    'if ($a["'.$key.'"] == $b["'.$key.'"]) return 0;' .
    'return ($a["'.$key.'"] < $b["'.$key.'"]) ? -1 : 1;'
    )
    );
    }

    multi_sort( $tab,"speeldagvolgnr");


    Thanks very much for an explanation.
    F



    --
    fanonimus
    ------------------------------------------------------------------------
    Posted via [url]http://www.codecomments.com[/url]
    ------------------------------------------------------------------------

    fanonimus Guest

  6. #5

    Default Re: sort array by key


    fanonimus wrote:
    > *Hi!
    > Why the below example doesn't work?
    >
    > function cmp ($a, $b) {
    > if ($a["speeldagvolgnr"] == $b["speeldagvolgnr"]) {
    > return 0;
    > }
    > return ($a["speeldagvolgnr"] < $b["speeldagvolgnr"]) ? -1 : 1;
    > }
    >
    > uksort($tab,"cmp");
    >
    > and the next example works very fine?
    >
    > function multi_sort(&$array, $key) {
    > usort($array,
    > create_function(
    > '$a,$b',
    > 'if ($a["'.$key.'"] == $b["'.$key.'"]) return 0;' .
    > 'return ($a["'.$key.'"] < $b["'.$key.'"]) ? -1 : 1;'
    > )
    > );
    > }
    >
    > multi_sort( $tab,"speeldagvolgnr");
    >
    >
    > Thanks very much for an explanation.
    > F *
    Thanks



    --
    fanonimus
    ------------------------------------------------------------------------
    Posted via [url]http://www.codecomments.com[/url]
    ------------------------------------------------------------------------

    fanonimus Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139