2017-08-11 6 views
0

私は特定のウェブサイトから詳細を解凍しています。 私はhtmlをPHP配列に解析したいと考えていました。キーを配列のPHPに入れる方法

このような配列を表示したいと思います。 将来どのデータを使いたいのかを簡単に判断できるように、キーを追加する必要があります。

$hk = array('info'); 
foreach($html->find('div[id="home"] div[id="topinfo"] p') as $home) { 
    $hometps[] = $home->plaintext; 
} 
print_r(array_fill_keys($hk,$hometps)); 

が、出力は私にこれを表示します:

[info] => Array 
    (
     [0] => info1 
     [1] => info2 
    ) 

は、ここに私のコードです

Array 
(
    [info] => Array 
     (
      [0] => info1 
      [1] => info2 
     ) 

) 
+0

私はあなたがそれらが画面に印刷されたときに配列がどのように見えるかについて混乱することができると思います。あなたはむしろ 'info'と呼ばれる変数を持っていて、1次元/インデックス配列になりますか?おそらく、入力データ/レベルをさらに追加することによって、希望の出力配列構造を明確にすることができます。 – mickmackusa

答えて

0

私は誰もがここでの問題や疑問について混乱だと思います。

$info = Array(); 
foreach($html->find('div[id="home"] div[id="topinfo"] p') as $home) { 
    array_push($info,$home->plaintext); 
} 
print_r($info); 

この意志出力:これはあなたが達成しようとしていたものだった

Array ( 
    [0] => info1 
    [1] => info2 
) 

希望以下はあなたのforeachループの戻り値を保持する$infoという名前の配列を、提供します。

+0

$ hk = array( 'info'); $ hometps = Array(); foreach($ html-> find( 'div [id = "home"] div [id = "topinfo"] p')$ home){ $ hometps [] = $ home-> plaintext; } print_r(array_fill_keys($ hk、$ hometps)); 私はこれを好きにしましたが、私には依然として同じ不要な出力を与えています –

+0

これがあなたのボートを揺らすかどうか見てください。 – Aydin4ik

0

配列要素は単独では使用できません。インデックスとしてinfoが必要な場合は、配列の一部でなければなりません。 使用可能な情報のリストが必要な場合、このように、$info変数としたときますprint_r($情報)に割り当てる:

$info = array(); 
foreach($html->find('div[id="home"] div[id="topinfo"] p') as $home) { 
    $info[] = $home->plaintext; 
} 
print_r($info); 

そして、あなたが得る:

Array 
    (
     [0] => info1 
     [1] => info2 
    ) 
0

はあなたのように見えるかもしれません私が推測する 'キー'とも呼ばれる配列の表現値の名前を変更しようとしています。私はforeachに行く間、htmlの出力に直接行うことをお勧めします。それはあなたの問題を解決するはずです。最初の形式は、array_expressionで指定した配列に関しをループ

$hk = array('info'); 
foreach($html->find('div[id="home"] div[id="topinfo"] p') as $hk => $home) { 
$hometps[] = $home->plaintext; 
} 
print_r($hometps); 


foreach (array_expression as $key => $value) 
    statement 

:それは、この(下部に元の例)のようになります。各反復で、現在の要素の値が$ valueに割り当てられ、内部配列ポインタが1つ進められます(次の反復では、次の要素が表示されます)。

第2の形式では、現在の要素のキーを各繰り返しで$ key変数に割り当てます。

PHP.net:foreach

関連する問題