0

私はこのようなphpで多次元配列を持っています

$shop = array( 
               array("name","point","number"),
               array('Ranjit', 1.25 , 15),
               array('Pitabas', 0.75 , 25),
               array('Khela', 1.15 , 7) 
             ); 

今、私はこのような出力を表示する必要があります

name-> ranjit
Point-> 1.25
number->15
name->Pitabas
Point->0.75
number->25
name->Khela
Point->1.15
number->7

forループを試していますが、ネストされたforloopで結果を取得できました。答えを得るのを手伝ってください。

4

4 に答える 4

3

私の解決策:

$headings = array_shift($shop);

foreach ($shop as $item) {
  foreach ($item as $key => $value) {
    echo $headings[$key], '=>', $value;
  }
}
于 2012-08-13T19:16:24.497 に答える
0

簡単なループを次に示します。ヘッダーが含まれていると見なされる外部配列の最初の要素をスキップすることに注意してください。

for ($i = 1; $i != count($shop); ++$i)
{
    print $shop[0][0] . ": ". $shop[$i][0] . "\n";
    print $shop[0][1] . ": ". $shop[$i][1] . "\n";
    print $shop[0][2] . ": ". $shop[$i][2] . "\n";
}
于 2012-08-13T19:14:58.833 に答える
0

これにより、目的の出力が得られます。

for($x = 1, $lim = sizeof($shop); $x < $lim; $x++)
{
    echo $shop[0][0]."->".$shop[$x][0]."<br>";
    echo $shop[0][1]."->".$shop[$x][1]."<br>";
    echo $shop[0][2]."->".$shop[$x][2]."<br>";
}
于 2012-08-13T19:15:03.580 に答える
0

最初の行がタイトルになることがわかっているので、別々に保存します。

$titles = $shop[0];

それはあなたに与えるでしょう

$titles = array('name', 'point', 'number');

次に、配列をループします。

foreach ($shop as $index => $row) {
    if ($index == 0) 
        continue;

    foreach($row as $column => $item) {
        echo $titles[$column] . " -&gt; " . $item . "<br />";
    }
}
于 2012-08-13T19:13:50.207 に答える