Php 从数据创建数组

Php 从数据创建数组,php,arrays,Php,Arrays,我正试图从这些数据创建一个数组,但我没有得到它。我尝试使用array_merge函数,但数组构造不正确。这是我的代码,我想用表中的不同字段创建一个数组 <?php require('extractorhtml/simple_html_dom.php'); $dom = new DOMDocument(); //load the html $html = $dom->loadHTMLFile("http:"); //discard white space $dom->pre

我正试图从这些数据创建一个数组,但我没有得到它。我尝试使用array_merge函数,但数组构造不正确。这是我的代码,我想用表中的不同字段创建一个数组

<?php
require('extractorhtml/simple_html_dom.php');
$dom = new DOMDocument();

//load the html
$html = $dom->loadHTMLFile("http:");


//discard white space
$dom->preserveWhiteSpace = false;

//the table by its tag name
$tables = $dom->getElementsByTagName('table');

//get all rows from the table
$rows = $tables->item(0)->getElementsByTagName('tr');
echo '<input type="text" id="search" placeholder="find" />';
echo '<table id="example" class="table table-bordered table-striped display">';
echo '<thead>';
echo '<tr>';
echo '<th>Date</th>';
echo '<th>Hour</th>';
echo '<th>Competition</th>';
echo '<th>Event</th>';
echo '<th>Chanel</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
// loop over the table rows
foreach ($rows as $row)
{
    // get each column by tag name
    $cols = $row->getElementsByTagName('td');
    // echo the values
    echo '<tr>';
    echo '<td>'.$cols->item(0)->nodeValue.'</td>';
    echo '<td>'.$cols->item(1)->nodeValue.'</td>';
    echo '<td>'.$cols->item(3)->nodeValue.'</td>';
    echo '<td class="text-primary">'.$cols->item(4)->nodeValue.'</td>';
    echo '<td>'.$cols->item(5)->nodeValue.'</td>';
    echo '</tr>';
}
echo '</tbody>';
echo '</table>';
?>
根据您的值,您知道哪些列包含哪些值,因此看起来您只需要修改foreach循环中的代码,将值附加到数组中,而不是用它们生成新的HTML

foreach ($rows as $row)
{
    // get each column by tag name
    $cols = $row->getElementsByTagName('td');

    $array['date'] = $cols->item(0)->nodeValue;
    $array['hour'] = $cols->item(1)->nodeValue;
    $array['competition'] = $cols->item(3)->nodeValue;
    $array['event'] = $cols->item(4)->nodeValue;
    $array['chanel'] = $cols->item(5)->nodeValue;
    $result[] = $array;
}

在这个循环之后,$result将是一个数组数组,其中包含来自s的值,其中每个内部数组表示一个。

您不需要合并数组,只需推到一个新数组上即可创建一个二维数组

$new_array = array();
foreach ($rows as $row)
{
    // get each column by tag name
    $cols = $row->getElementsByTagName('td');
    // echo the values
    echo '<tr>';
    echo '<td>'.$cols->item(0)->nodeValue.'</td>';
    echo '<td>'.$cols->item(1)->nodeValue.'</td>';
    echo '<td>'.$cols->item(3)->nodeValue.'</td>';
    echo '<td class="text-primary">'.$cols->item(4)->nodeValue.'</td>';
    echo '<td>'.$cols->item(5)->nodeValue.'</td>';
    echo '</tr>';
    $new_array[] = array(
        'date' => $cols->item(0)->nodeValue,
        'hour' => $cols->item(1)->nodeValue,
        'competition' => $cols->item(3)->nodeValue,
        'channel' => $cols->item(5)->nodeValue
    );
}

数组_merge在这里的什么位置?你想在哪里创建一个数组?我想用表的日期、小时、竞争和频道数据创建一个数组,我尝试了array_merge,但我不知道如何获取表中每个字段的数据并将其正确地放入数组$tables中是什么?同时,展示你的相关尝试。这有助于我们了解您的想法,因为目前还不清楚。如果您有两个数组,并且希望将它们合并为一个数组,则使用array_merge。您没有任何要合并的数组,那么您认为需要合并什么?@htmlpower您可能需要看一看并重构一下您的问题,以帮助我们了解您拥有什么以及您想要实现什么。