-3
    Array (    

    [x0] => sometext1     
    [x1] => sometext2     
    [x2] => sometext3    
    [x3] => sometext4     
    [x4] => sometext5    
    [x5] => sometext6
    [x?] => sometext?

    [y0] => someothertext1     
    [y1] => someothertext2  
    [y2] => someothertext3     
    [y3] => someothertext4     
    [y4] => someothertext5     
    [y5] => someothertext6
    [y?] => someothertext?

    ) 

この配列を取得してテーブルを作成しようとしています。基本的に、xまたはyがいくつになるかはわかりません...これまでのところ、解決策は見つかりませんでした。どんな助けでも大歓迎です。

私が得ようとしている結果

テーブル

   x      |       y
sometext1 | someothertext1
sometext2 | someothertext2
...       | ...
4

4 に答える 4

1

可能であれば、配列の宣言方法を少し修正してください。次のようにします。

Array (    
    [x] => Array (
        [0] => sometext1     
        [1] => sometext2     
        [2] => sometext3    
        [3] => sometext4     
        [4] => sometext5    
        [5] => sometext6
        [?] => sometext?
    )
    [y] => Array (
        [0] => sometext1     
        [1] => sometext2     
        [2] => sometext3    
        [3] => sometext4     
        [4] => sometext5    
        [5] => sometext6
        [?] => sometext?
    )
)

このように、PHP を使用すると、次のようにテーブルを作成できます。

<table>
<?php
    echo '<tr>';
    foreach ($array as $heading => $contents)
        echo "<th>$heading</th>";
    echo '</tr>';
    foreach ($array as $heading => $contents)
        foreach ($heading as $value)
            echo "<td>$value</td>";
?>
</table>
于 2013-02-19T07:12:03.133 に答える
1

これを試して :

    <?php
$array  = Array('x0' => 'sometext1',     
                'x1' => 'sometext2',     
                'x2' => 'sometext3',    
                'x3' => 'sometext4',     
                'x4' => 'sometext5',    
                'x5' => 'sometext',
                'y0' => 'someothertext1',     
                'y1' => 'someothertext2',  
                'y2' => 'someothertext3',     
                'y3' => 'someothertext4',     
                'y4' => 'someothertext5',     
                'y5' => 'someothertext6',
                );

$res    = array();              
foreach($array as $key=>$val){
    preg_match('/(?P<var>\w{1})(?P<ky>\d+)/',$key, $match);
    $res[$match['ky']][$match['var']] = $val;
}


echo "<table>";
echo "<tr><td>X</td><td>Y</td></tr>";
foreach($res as $keys=>$vals){  
    echo "<tr><td>".$vals['x']."</td><td>".$vals['y']."</td></tr>";
}
echo "<table>";

?>

出力:

X           Y
sometext1   someothertext1
sometext2   someothertext2
sometext3   someothertext3
sometext4   someothertext4
sometext5   someothertext5
sometext    someothertext6
于 2013-02-19T07:16:47.243 に答える
0

この例では、その配列を別の var にコピーします。$arr と $arr2 という名前の 2 つの配列があり、それぞれのコピーです。

$arr = $arr2 = Array (    .... );

foreach($arr as $key=>$data)
{
    $num = substr($key,1);
    echo '<tr><td>'.$data.'</td>';
    foreach($arr2 as $key2=>$data2)
    {
        $num2 = substr($key2,1);
        if($num == $num2)
        {
            echo '<td>'.$data.'</td>';
            break;
        }
    }
    echo '</tr>';
}

もちろん、これは、「x」エクストラに一致する「y」がない場合に欠落している td を修正するなどのことを考慮していません。

于 2013-02-19T07:11:51.817 に答える
0

Praveen Kumar が説明したように、テーブルは次のようになります。

#   X              y
0   sometext1     sometext1
1   sometext2     sometext2
于 2013-02-19T07:15:07.317 に答える