2015-04-07 115 views
0

好吧,我解析一个html文件使用simple_dom_html,一切工作正常。 我想要做的是将值插入多维数组。Php将值插入多维数组

这里是我的代码:

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类

  • 子1

  • 子2

类别2

  • 子1

我想要做的就是输出它作为一个数组,像这样:

Array 
(
    [0] => Array 
     (
      [cat] => Category 1 
      [subs] => Sub 1, Sub 2 
     ) 

    [1] => Array 
     (
      [cat] => Category 2 
      [subs] => Sub 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>"; 
+0

完美,谢谢!!! :) – fackz

+0

@fackz欢迎:) – besciualex

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); 

注:我在一个小的并发症增加约只能用逗号分隔符时,潜艇是不是空的。我说得很清楚,这就是我正在做的。

+0

嘿kainaw感谢您的帮助,你的代码工作很好,但在其他的解决办法就出来了第一位。无论如何,我只是想感谢你! – fackz