On Jun 14, 2011, at 1:30 PM, Ashley M. Kirchner wrote:

On 6/14/2011 12:03 PM, Shawn McKenzie wrote:
--or to search for wmax =
if($array = preg_grep('/^ wmax = $/', $output)) {
   $wmax = explode(', ', $array[0]);
}
array_shift($wmax);
print_r($wmax);

May need some more error checking.

   Yeah, error checking ...

Can't search for '/^ wmax $/' because it just returns nothing. Dropping the '$' at the end works.

The array_shift() also drops the first variable because the explode() call breaks it up as:
       wmax = 5, 5, 5.4 ... etc.  First value = 'wmax = 5'

And the explode also fails because data is not in $array[0], it's in $array[30]. Inserting an array_values() to reindex helps.

   So as of right now, I'm looking at:

     if ($array = preg_grep('/^ wmax = /', $output)) {
       $array = array_values($array);
       $wmax = explode(', ', $array[0]);
     }
     array_shift($wmax);
     print_r($wmax);

The array_shift() call needs to shift out the 'wmax = ', but leave the first value.

And, I still need to convert the whole thing into '$wmax = {5, 5, 5.4, ...}'. Right now it's an array of strings:

       Array
       (
           [0] =>  wmax = 5
           [1] => 5
           [2] => 5
           [3] => 5.4
       )



Seems what's best here is to do two explodes:

        $matches = preg_grep('/^\s*wmax/',$inputdata);

if (count($matches) != 1) die("More or less than one wmax in data set");

        $wmaxline = end($matches);
        list($var,$data) = explode(' = ',$wmaxline);
        $data = substr($data, 0, -2);
        $wmax = explode(', ',$data);
        print_r($wmax);

which gives me the result of an array of data values.

Array
(
    [0] => 5
    [1] => 5
    [2] => 5
    [3] => 5.4
    [4] => 5.7
    [5] => 5.1
    [6] => 7.1
    [7] => 6.1
    [8] => 4.4
    [9] => 9.5
 ------%<---------
    [278] => 5.4
    [279] => 6.1
    [280] => 5.6
    [281] => 5.9
    [282] => 6.4
    [283] => 9.5
    [284] => 11.2
    [285] => 15.8
    [286] => 15
    [287] => 13.6
)



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to