1

DB からの値を格納する配列は次のとおりです。

$dataTitle[0] = "TIR";
$dataTitle[1] = "OIL";
$dataTitle[2] = "SPK";

$dataDesc[0] = "Tires";
$dataDesc[1] = "Oil";
$dataDesc[2] = "Spark Plugs";

$dataValue[0] = "100";
$dataValue[1] = "10";
$dataValue[2] = "4";

次を使用してデータを 2D 配列に手動で挿入できますが、挿入する行レコードが 100 以上ある場合は目的を果たしません。そのため、以下に FOR ループが必要です。

$ResultView = array(array($dataTitle[0], $dataDesc[0], $dataValue[0]),
                array($dataTitle[1], $dataDesc[1], $dataValue[1]),
                    array($dataTitle[2], $dataDesc[2], $dataValue[2])
               );

次の FOR LOOP を使用している場合、2D 配列は最後の行のレコードのみを格納し、1 番目と 2 番目の行のレコードを省略しました。

for ($i=0; $i<=2; $i++) {
          $ResultView = array(array($dataTitle[$i], $dataDesc[$i], $dataValue[$i])
               );
    }

上記の for ループに対して以下の出力スクリプトを発行すると、3 行目の出力値が取得され、1 行目と 2 行目の結果が欠落しています。助けてください!

for ($row=0; $row<=2; $row++) {

    for ($col=0; $col<=2; $col++) { 

        echo $ResultView[$row][$col]."&nbsp | ";
    }

    echo '<br />';
}

しかし、上記の代わりにFORループを使用する方法を探しています。どのように?

実際の出力は次のとおりです。

Row 1 => TIR | Tires | 100 
Row 2 => OIL | Oil | 10 
Row 3 => SPK | Spark Plugs | 4

ご意見をお聞かせください。

4

6 に答える 6

5

成功する

 for ($i=0; $i<=2; $i++) {
      $ResultView[] = array(array($dataTitle[$i], $dataDesc[$i], $dataValue[$i])
           );
       }
于 2013-03-26T07:39:50.757 に答える
1

これが最終的な解決策です

  $dataTitle = array('TIR','OIL','SPK');
  $dataDesc=array('Tires','Oil','Spark Plugs'); 
 $dataValue=array('100','10','4');
 for ($i=0; $i<=2; $i++) { 
 $ResultView[] = array(array($dataTitle[$i], $dataDesc[$i], $dataValue[$i])); 
} 
     for ($row=0; $row<=2; $row++) 
     {   
         for ($col=0; $col<=2; $col++) 
         { 
              echo $ResultView[$row][0][$col]."  | "; 
          } 
   echo '<br />'; }
于 2013-03-26T08:23:22.700 に答える
0

配列構造に基づいて、これを使用できます

$data[0] = "TIR";
$data[1] = "Tires";
$data[2] = "100";

$data1[0] = "OIL";
$data1[1] = "Oil";
$data1[2] = "10";

$data2[0] = "SPK";
$data2[1] = "Spark Plugs";
$data2[2] = "4";

$resultCount = 3;  // adjust this value for the number of results you have
$products = array();

for ($i = 0; $i < $resultCount; $i++) {
    $products[] = ${'data' . ($i ? $i : '')};
}

print_r($products);
于 2013-03-26T07:30:13.773 に答える
0

データがデータベースからのものである場合:whileループを使用できます

$products        = array();
/* data from first table*/
while($dataTitle = mysql_fetch_assoc($sql)){
   $products[]   = $dataTitle;
} 

/* data from second table*/
while($dataDesc  = mysql_fetch_assoc($sql)){
   $products[]   = $dataDesc;
}

/* data from third table*/
while($dataValue = mysql_fetch_assoc($sql)){
   $products[]   = $dataValue;
}

echo "<pre>";
print_r($products);
于 2013-03-26T06:55:29.200 に答える
0

DB 結果の行が配列として返される場合は、結果をループして、製品配列にプッシュするだけで済みます。

// assuming $results contains your DB response
$products = array();
for ($i = 0; $i < count($results); $i++) {
     $products[] = $results[$i];  // or whatever method you use to fetch a row
}

DB の結果はおそらく多次元配列のように使用できますが。

于 2013-03-26T06:58:19.060 に答える
0
**Method-1**  Raw method to generate the 2 diamentional array
This is your Array

$products = array( array( 'TIR', 'Tires', 100 ),
array( 'OIL', 'Oil', 10 ),
array( 'SPK', 'Spark Plugs', 4 ),
array( 'SPK', 'Spark Plugs', 4 ));

$cnt=0;
$cnt=count($products);
$product=array();

// データを $product 配列にコピーしています

for($i=0;$i<$cnt;$i++){
for($j=0;$j<3;$j++){
$product[$i][$j]= $products[$i][$j];
}
}


If you are getting data from data base 

for($i=0;$i<mysql_num_rows($result);$i++){
 $products[]=result [$i];
}
于 2013-03-26T07:14:43.810 に答える