Re: Array - partical path to the array's path (part 2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Scott Fletcher wrote:
Aw!!!  This is driving me nut...


It still does....   :-)


get to grips with var_dump() ...


Um....  Interesting thought...


($array.$suffix) will never be an array
$suffix .= "['".$key."']";


Yea, you are correct...  I was trying to integrate the coding and stumpled
upon this.  It's a mind-twisting task here.


Problem is I can't use the foreach() loop because it would include the
numeric value into the string, like <0>blah</0>...

could you rephrase that in english?


The arrays with ['NEWSFEED']['0']['MESSAGE']['1'] where the the two square
brackets with numeric number on the 2nd and 4th square backet is to tell us
how many of that tag name in the 1st and 3rd square bracket there are.  If I
am to convert that back into xml then those numeric square bracket isn't
needed.   Well, all is not lost.  I had scraped it and came up with a new
model.  It work better than I thought but not too well.  This is testcase
#15..

--snip--
/*
$xml_str  = "<NewsFeed>";
$xml_str .= " <Message>";
$xml_str .= "  <Comment>";
$xml_str .= "   <![CDATA[Comment #1]]>";
$xml_str .= "  </Comment>";
$xml_str .= " </Message>";
$xml_str .= " <Message>";
$xml_str .= "  <Comment>";
$xml_str .= "   <![CDATA[Comment #2]]>";
$xml_str .= "  </Comment>";
$xml_str .= " </Message>";
$xml_str .= "</NewsFeed>";
*/


the xml above is not structurally
the same as the array below !!!!

I'll bet your output has just one message
element right? or you have gone completely offtrack.

might be time you went here:

http://php.net/xml
http://php.net/dom
http://php.net/domxml

might be something there to help you out
especially if you give php5 a try.

$array = array
(
  'NEWSFEED' => array
  (
    '0' => array
    (
      'MESSAGE' => array
      (
        '0' => array
        (
          'COMMENT' => array
          (
            '0' => array
            (
              'VALUE' => 'Comment #1'
            )
          )
        ),
        '1' => array
        (
          'COMMENT' => array
          (
            '0' => array
            (
              'VALUE' => 'Comment #2'
            )
          )
        )
      )
    )
  )
);

  function my_build_xml($xml_tree, $x)
  {
     global $xml_data;
     $x++;

     foreach($xml_tree as $key => $value)
     {
        if(is_array($value)) {
           if ($x % 2 != 0) {
              $xml_data .= str_repeat(" ",$x)."<".$key.">"."\r\n";
              my_build_xml($value, $x);
              $xml_data .= str_repeat(" ",$x)."</".$key.">"."\r\n";

              if ($key != 0) {
                 $xml_data .= str_repeat(" ",$x)."<".$key.">"."\r\n";
                 my_build_xml($value, $x);
                 $xml_data .= str_repeat(" ",$x)."</".$key.">"."\r\n";
              }
           } else {
              my_build_xml($value, $x);
           }
        } else {
           if ($x % 2 != 0) {
              $xml_data .= str_repeat("
",$x)."<".$key.">".$value."</".$key.">"."\r\n";
           }
        }
     }
  }

  my_build_xml($array, "0");

  echo "\n<br><br>\n".$xml_data;
--snip--

The output doesn't match the one in the $array or $xml_str above.  So, I'm
now on testcase #16 with some revamping of the code and I'm not having much
luck at it.  Maybe you can help if you know of something here...   :-)


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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux