Ordering array won't work?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • frizzle

    Ordering array won't work?

    Hi there,

    I want to scan a dir, put the *.gif into an array, and order that (
    01.gif, 02.gif etc),
    and put that array into a $_session-array. (Session & Headers are
    initiated before this code)
    I have the code below, everything works, except for the ordering.

    Any clues ?

    Thanks, Frizzle.

    $dir = opendir("./img/");

    while( $file = readdir($dir)){
    if (preg_match("/\.gif$/", $file)) {

    $filename = preg_replace( "/\.gif$/", '', $file );
    $_SESSION['all_pics'][$filename] = "Foobar";

    };
    };

    closedir( $dir );

    asort( $_SESSION['all_pics'] );

  • Rik

    #2
    Re: Ordering array won't work?

    frizzle wrote:
    Hi there,
    >
    I want to scan a dir, put the *.gif into an array, and order that (
    01.gif, 02.gif etc),
    and put that array into a $_session-array. (Session & Headers are
    initiated before this code)
    I have the code below, everything works, except for the ordering.
    >
    Any clues ?
    $_SESSION['all_pics'][$filename] = "Foobar";
    asort( $_SESSION['all_pics'] );
    Well, if the value of every array item is the same, offcourse there will be
    no sorting done.
    If you want to sort on key:
    ksort($_SESSION['all_pics']);

    Allthough I can't image why:
    $_SESSION['all_pics'][] = $filename;
    ...
    asort($_SESSION['all_pics']);
    does not do...
    --
    Rik Wasmus


    Comment

    • Andy Hassall

      #3
      Re: Ordering array won't work?

      On 25 Oct 2006 11:06:14 -0700, "frizzle" <phpfrizzle@gma il.comwrote:
      >I want to scan a dir, put the *.gif into an array, and order that (
      >01.gif, 02.gif etc),
      >and put that array into a $_session-array. (Session & Headers are
      >initiated before this code)
      >I have the code below, everything works, except for the ordering.
      >
      > $filename = preg_replace( "/\.gif$/", '', $file );
      > $_SESSION['all_pics'][$filename] = "Foobar";
      >
      >asort( $_SESSION['all_pics'] );
      All the values in your array are equal to "Foobar", and so asort doesn't need
      to do anything to the array to sort it.

      --
      Andy Hassall :: andy@andyh.co.u k :: http://www.andyh.co.uk
      http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool

      Comment

      • frizzle

        #4
        Re: Ordering array won't work?


        Andy Hassall wrote:
        On 25 Oct 2006 11:06:14 -0700, "frizzle" <phpfrizzle@gma il.comwrote:
        >
        I want to scan a dir, put the *.gif into an array, and order that (
        01.gif, 02.gif etc),
        and put that array into a $_session-array. (Session & Headers are
        initiated before this code)
        I have the code below, everything works, except for the ordering.

        $filename = preg_replace( "/\.gif$/", '', $file );
        $_SESSION['all_pics'][$filename] = "Foobar";

        asort( $_SESSION['all_pics'] );
        >
        All the values in your array are equal to "Foobar", and so asort doesn't need
        to do anything to the array to sort it.
        >
        --
        Andy Hassall :: andy@andyh.co.u k :: http://www.andyh.co.uk
        http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool
        I'm sorry, i guess i wasn't clear.
        I want it ordered by it's keys ...

        $_SESSION['all_pics'][$filename]
        ---------------------------------------^

        Thanks for the fast reply.

        Frizzle.

        Comment

        • Andy Hassall

          #5
          Re: Ordering array won't work?

          On 25 Oct 2006 11:29:15 -0700, "frizzle" <phpfrizzle@gma il.comwrote:
          >Andy Hassall wrote:
          >On 25 Oct 2006 11:06:14 -0700, "frizzle" <phpfrizzle@gma il.comwrote:
          >>
          >>>I want to scan a dir, put the *.gif into an array, and order that (
          >>>01.gif, 02.gif etc),
          >>>and put that array into a $_session-array. (Session & Headers are
          >>>initiated before this code)
          >>>I have the code below, everything works, except for the ordering.
          >>>
          >>> $filename = preg_replace( "/\.gif$/", '', $file );
          >>> $_SESSION['all_pics'][$filename] = "Foobar";
          >>>
          >>>asort( $_SESSION['all_pics'] );
          >>
          > All the values in your array are equal to "Foobar", and so asort doesn't need
          >to do anything to the array to sort it.
          >
          >I'm sorry, i guess i wasn't clear.
          >I want it ordered by it's keys ...
          >
          >$_SESSION['all_pics'][$filename]
          Start at http://uk2.php.net/manual/en/ref.array.php

          Look at all the various functions with "sort" in their name. You'll find the
          one you want soon enough.

          --
          Andy Hassall :: andy@andyh.co.u k :: http://www.andyh.co.uk
          http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool

          Comment

          • frizzle

            #6
            Re: Ordering array won't work?


            Andy Hassall wrote:
            On 25 Oct 2006 11:29:15 -0700, "frizzle" <phpfrizzle@gma il.comwrote:
            >
            Andy Hassall wrote:
            On 25 Oct 2006 11:06:14 -0700, "frizzle" <phpfrizzle@gma il.comwrote:
            >
            >>I want to scan a dir, put the *.gif into an array, and order that (
            >>01.gif, 02.gif etc),
            >>and put that array into a $_session-array. (Session & Headers are
            >>initiated before this code)
            >>I have the code below, everything works, except for the ordering.
            >>
            >> $filename = preg_replace( "/\.gif$/", '', $file );
            >> $_SESSION['all_pics'][$filename] = "Foobar";
            >>
            >>asort( $_SESSION['all_pics'] );
            >
            All the values in your array are equal to "Foobar", and so asort doesn't need
            to do anything to the array to sort it.
            I'm sorry, i guess i wasn't clear.
            I want it ordered by it's keys ...

            $_SESSION['all_pics'][$filename]
            >
            Start at http://uk2.php.net/manual/en/ref.array.php
            >
            Look at all the various functions with "sort" in their name. You'll find the
            one you want soon enough.
            >
            --
            Andy Hassall :: andy@andyh.co.u k :: http://www.andyh.co.uk
            http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool
            Great! Ksort. Can't believe i missed that.
            Thanks again.

            Frizzle.

            Comment

            Working...