好的,我正在使用simple_dom_html解析一个html文件,一切正常。 我想要做的是将值插入到多维数组中。
这是我的代码:
foreach ($html->find('li[class="searchFacetDimension"]') as $filtros) {
foreach($filtros->find('div[class="dimensionContainer"] h4') as $titulo){
echo $titulo->plaintext . "<br>";
foreach($filtros->find('div[class="dimensionContainer"] ul li a') as $link){
echo $link->plaintext . "<br>";
}
echo "<br>";
}
}
输出:
第1类
sub 1
sub 2
第2类
我要做的是将其输出为数组,如:
Array
(
[0] => Array
(
[cat] => Category 1
[subs] => Sub 1, Sub 2
)
[1] => Array
(
[cat] => Category 2
[subs] => Sub 1
)
)
答案 0 :(得分:1)
你做了所有艰苦的工作。你所要做的就是制作一个数组:
$array = array();
foreach ($html->find('li[class="searchFacetDimension"]') as $filtros) {
foreach($filtros->find('div[class="dimensionContainer"] h4') as $titulo){
$array[] = array('cat'=>$titulo->plaintext,'subs'=>'');
foreach($filtros->find('div[class="dimensionContainer"] ul li a') as $link){
if($array[sizeof($array)-1]['subs'] != '')
$array[sizeof($array)-1]['subs'].= ', ';
$array[sizeof($array)-1]['subs'].= $link->plaintext;
}
}
}
print_r($array);
注意:当subs不为空时,我确实添加了一些关于仅使用逗号分隔符的复杂功能。我把它弄得很冗长,很清楚这就是我在做什么。
答案 1 :(得分:1)
以下是您需要的代码:
$result = array();
foreach ($html->find('li[class="searchFacetDimension"]') as $filtros) {
$aux = array()
foreach($filtros->find('div[class="dimensionContainer"] h4') as $titulo){
//echo $titulo->plaintext . "<br>";
$aux['cat'] = $titulo->plaintext;
foreach($filtros->find('div[class="dimensionContainer"] ul li a') as $link){
//echo $link->plaintext . "<br>";
$aux['subs'][] = $link->plaintext;
}
//echo "<br>";
}
$aux['subs'] = implode(", ",$aux['subs']);
$result[] = $aux;
}
echo "<pre>";
print_r($result);
echo "</pre>";