Удалить ненужный массив из результата - PHP

0

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

] => 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>, но это не очень важно.

Теги:
arrays

1 ответ

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
    рад помочь вам :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню