ari*_*yat 6 php arrays symfony domcrawler
我有html表,我想从该表中创建数组
$html = '<table>
<tr>
<td>satu</td>
<td>dua</td>
</tr>
<tr>
<td>tiga</td>
<td>empat</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我的数组必须看起来像这样
array(
array(
"satu",
"dua",
),
array(
"tiga",
"empat",
)
)
Run Code Online (Sandbox Code Playgroud)
我已经尝试了下面的代码,但无法获得我需要的数组
$crawler = new Crawler();
$crawler->addHTMLContent($html);
$row = array();
$tr_elements = $crawler->filterXPath('//table/tr');
foreach ($tr_elements as $tr) {
// ???????
}
Run Code Online (Sandbox Code Playgroud)
Fra*_*Luz 12
$table = $crawler->filter('table')->filter('tr')->each(function ($tr, $i) {
return $tr->filter('td')->each(function ($td, $i) {
return trim($td->text());
});
});
print_r($table);
Run Code Online (Sandbox Code Playgroud)
上面的例子将为您提供一个多维数组,其中第一层是表格行"tr",第二层是表格列"td".
$html = '<table>
<tr>
<td>satu</td>
<td>dua</td>
</tr>
<tr>
<td>tiga</td>
<td>empat</td>
</tr>
</table>';
$crawler = new Crawler();
$crawler->addHTMLContent($html);
$rows = array();
$tr_elements = $crawler->filterXPath('//table/tr');
// iterate over filter results
foreach ($tr_elements as $i => $content) {
$tds = array();
// create crawler instance for result
$crawler = new Crawler($content);
//iterate again
foreach ($crawler->filter('td') as $i => $node) {
// extract the value
$tds[] = $node->nodeValue;
}
$rows[] = $tds;
}
var_dump($rows );exit;
Run Code Online (Sandbox Code Playgroud)
会显示
array
0 =>
array
0 => string 'satu'
1 => string 'dua'
1 =>
array (size=2)
0 => string 'tiga'
1 => string 'empat'
Run Code Online (Sandbox Code Playgroud)