Re: array insights

From: Date: Wed, 03 May 2006 17:42:37 +0000
Subject: Re: array insights
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-235392@lists.php.net to get a copy of this message
Dave Goodchild wrote:
use: $new_array = array_chunk($input_array, 3)); Thanks, that is just the array function I was looking for.
this will split your original array into a number of arrays with three elements in each and trash the original keys. If you want to preserve the keys pass a third paramater (true). Hope this helps. On 03/05/06, Jason Gerfen <jason.gerfen@scl.utah.edu> wrote:
I am looking for some information on how to do this the correct way, here is the data I am working with: Array (
    [hostname-0] => hostname
    [mac-0] => 00:0a:b3:aa:00:5d
    [ip-0] => 192.168.0.1
    [subnet] => MMC-Subnet
    [group] => MMC-PXE
    [hostname-1] => tester01
    [mac-1] => 00:09:02:bb:cc:zz
    [ip-1] => 192.168.0.2
    [hostname-2] => new-test
    [mac-2] => 00:09:02:bb:cc:99
    [ip-2] => 192.168.0.3
    [cmd] => edit
    [import] => Re-submit
) Here is how I need the above data to look when finished processing. Array (
    [0] => Array
        (
            [0] => hostname
            [1] => 00:0a:b3:aa:00:5d
            [2] => 192.168.0.1
        )
    [1] => Array
        (
            [0] => tester01
            [1] => 00:09:02:bb:cc:zz
            [2] => 192.168.0.2
        )
    [2] => Array
        (
            [0] => new-test
            [1] => 00:09:02:bb:cc:99
            [2] => 192.168.0.3
        )
) here is the code I am using. <?PHP function ReFilter( $new ) {
     $x = 0;
        foreach( $new as $key => $value ) {
            if( eregi( 'hostname', $key ) ) {
          echo "HOSTNAME: " . $key . " => " . $value . "<br>";
             $arr[$x] = $value;
         }
            if( eregi( 'mac', $key ) ) {
             echo "MAC: " . $key . " => " . $value . "<br>";
                $arr[$x] = $value;
            }
            if( eregi( 'ip', $key ) ) {
             echo "IP: " . $key . " => " . $value . "<br>";
             $arr[$x] = $value;
            }
            if( eregi( 'subnet', $key ) ) {
             echo "SUBNET: " . $key . " => " . $value . "<br>";
             $arr[$x] = $value;
            }
            if( eregi( 'group', $key ) ) {
             echo "GROUP: " . $key . " => " . $value . "<br>";
             $arr[$x] = $value;
            }
            $x++;
        }
        $data = $arr;
    return $data;
} ?> I realize I am missing a loop, but am unsure of the best practice on it. Thanks in advance -- Jason Gerfen "You will never be ready for me." ~ Me -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- http://www.web-buddha.co.uk dynamic web programming from Reigate, Surrey UK (php, mysql, xhtml, css) look out for project karma, our new venture, coming soon!
-- Jason Gerfen "You will never be ready for me." ~ Me

« previous php.general (#235392) next »