Re: multi-dimensional arrays

From: Date: Mon, 13 Apr 2009 19:52:42 +0000
Subject: Re: multi-dimensional arrays
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-291445@lists.php.net to get a copy of this message
I was having the same problem. The second way was what I was looking for. Thank you so much for your help--I did not know about preg_match_all(). very cool....thanks again. -Andres Shawn McKenzie wrote:
Shawn McKenzie wrote:
Well in your approach you get a bunch of empty elements where the spaces are. Here are two ways but I'm sure one preg_match_all() without the explodes and loop could do it (some guru will show us): //one way $text = 'xxx xxxx xx xxxxx xx xxx xx xxxxx x xxx xx xxxxxx xx xxx xx xxxx xx xx'; $lines = explode(PHP_EOL, $text); foreach($lines as $line) { $temp = explode(' ', $line); $result[] = array_filter($temp, 'reduce'); } function reduce($var) { return !empty($var); } print_r($result);
    
Array (
    [0] => Array
        (
            [0] => xxx
            [2] => xxxx
            [4] => xx
            [6] => xxxxx
            [8] => xx
            [11] => xxx
        )
    [1] => Array
        (
            [0] => xx
            [2] => xxxxx
            [5] => x
            [7] => xxx
            [9] => xx
            [11] => xxxxxx
        )
    [2] => Array
        (
            [0] => xx
            [2] => xxx
            [4] => xx
            [6] => xxxx
            [8] => xx
            [11] => xx
        )
)
//another way $text = 'xxx xxxx xx xxxxx xx xxx xx xxxxx x xxx xx xxxxxx xx xxx xx xxxx xx xx'; $lines = explode(PHP_EOL, $text); foreach($lines as $line) { preg_match_all('|([^\s]+)+|', $line, $matches); $result[] = $matches[1]; } print_r($result);
    
Array (
    [0] => Array
        (
            [0] => xxx
            [1] => xxxx
            [2] => xx
            [3] => xxxxx
            [4] => xx
            [5] => xxx
        )
    [1] => Array
        (
            [0] => xx
            [1] => xxxxx
            [2] => x
            [3] => xxx
            [4] => xx
            [5] => xxxxxx
        )
    [2] => Array
        (
            [0] => xx
            [1] => xxx
            [2] => xx
            [3] => xxxx
            [4] => xx
            [5] => xx
        )
) There is a difference in the key numbering though if that is important.


« previous php.general (#291445) next »