2015-01-28 2 views
0

Глядя на том, как удалить бесполезный мусор из результата, как:Удалить массив барахло из результата - PHP

] => Array ([] => 

Моего PHP код:

<?php 
$url = 'http://api.wolframalpha.com/v2/query?input=planes+seen+from+dallas&appid=2UJ62E-Q6RT3T89P8'; 

$parser = new XMLReader; 
$parser->open($url); 

while ($parser->read()) { 
    if ($parser->nodeType === XMLReader::ELEMENT) { 

     while ($parser->name === 'pod' && $parser->getAttribute('title') !== 'Result') 
      $parser->next('pod'); // jump to the next pod node 

     if ($parser->name === 'plaintext') { 
      $str = $parser->readString(); 
      $parser->close();  
      break; 
     } 
    } 
} 

$lines = explode("\n", $str); 
$result = array(); 

foreach ($lines as $line) { 
    $fields = explode(' | ', $line); 
    $flight = array_shift($fields); 
    $flight = $flight . "<hr>"; //DELETE IF DOESN'T WORK 

    if ($flight === '') 
     $cols = $fields; 
    elseif (isset($fields[1])) { 
     $result[$flight][$cols[0]] = $fields[0]; 
     $result[$flight][$cols[1]] = $fields[1]; 
    } 
} 

print_r($result); 
?> 

выход Примера:

Array ([] => Array ([] => slant distance) [Atlantic Southeast Airlines flight 5520
] => Array ([] => 23 miles SW) [Volaris flight 940
] => Array ([] => 30 miles NNW) [American Airlines flight 386
] => Array ([] => 14 miles NW) [American Airlines flight 296
] => Array ([] => 27 miles W) [Central Air Southwest flight 7] => Array ([] => 6.5 miles WSW))

На каждом перерыве есть тег <hr>, но это не очень важно.

ответ

1
Try this: 
     <?php 
    $url = 'http://api.wolframalpha.com/v2/query?input=planes+seen+from+dallas&appid=2UJ62E-Q6RT3T89P8'; 

    $parser = new XMLReader; 
    $parser->open($url); 

    while ($parser->read()) { 
     if ($parser->nodeType === XMLReader::ELEMENT) { 

      while ($parser->name === 'pod' && $parser->getAttribute('title') !== 'Result') 
       $parser->next('pod'); // jump to the next pod node 

      if ($parser->name === 'plaintext') { 
       $str = $parser->readString(); 
       $parser->close();  
       break; 
      } 
     } 
    } 

    $lines = explode("\n", $str); 
    $result = array(); 

    foreach ($lines as $line) { 
     $fields = explode(' | ', $line); 
     $flight = array_shift($fields); 
     $flight = $flight . "<hr>"; //DELETE IF DOESN'T WORK 

     if ($flight === '') 
      $cols = $fields; 
     elseif (isset($fields[1])) { 
      $result[$flight][$cols[0]] = $fields[0]; 
      $result[$flight][$cols[1]] = $fields[1]; 
     } 
    } 

    foreach($result as $key=>$value) 
    { 
     echo $key; 
     foreach($value as $value1){ 

     echo $value1; 
echo " &nbsp;"; 
} 
    } 
+0

Удивительный, спасибо –

+0

рад помочь вам :) –