0

$item1$item2またはのいずれかと呼ばれる変数にアクセスしたい$item3

毎回で$iあるforループ内でこの変数にアクセスしたいと思います。++使用$item.$iまたは類似のもの。ただし、そのコードを使用するということは、2つの変数の内容を結合しようとしていることを意味し、$itemという変数はありません。

4

6 に答える 6

4

配列: より良い方法

PHP では、他のさまざまな値から動的変数名を作成することはできますが、この場合はおそらくそうすべきではありません。あなたには配列の方が適しているように思えます:

$items = array( 0, 12, 34 );

次に、各値に個別にアクセスできます。

echo $items[0]; // 0
echo $items[1]; // 12

または、セット全体をループします。

foreach ( $items as $number ) {
  echo $number; // 1st: 0, 2nd: 12, 3rd: 34
}

複数の配列のマージ

OPのコメントで、すでに配列であること$item1を示しました。以下に示す$item3ように、必要に応じて、それらをすべて 1 つの配列にマージできます。array_merge()

$item1 = array( 1, 2 );
$item2 = array( 3, 4 );
$item3 = array( 5, 6 );

$newAr = array_merge( $item1, $item2, $item3 );

print_r( $newAr );

どの出力:

Array
(
  [0] => 1
  [1] => 2
  [2] => 3
  [3] => 4
  [4] => 5
  [5] => 6
)

必要な場合: 動的変数名

完全を期すために、変数名を動的に構築することで問題を解決する場合は、次のようにすることができます。

$item1 = 12;
$item2 = 23;
$item3 = 42;

for ( $i = 1; $i <= 3; $i++ ) {
  echo ${"item".$i} . PHP_EOL;
}
于 2012-05-16T16:33:39.660 に答える
2

アクセスしたい変数名を別の変数に構築してから、変数変数構文を使用します

<?php
   $item1 = 'a';
   $item2 = 'b';
   $item3 = 'c';

   for ($i = 1; $i<=3; $i++) {
       $varname = 'item' . $i;
       echo $$varname;
   }
?>

出力:

abc

これを行う他の方法があることに注意してください。マニュアルを参照してください。

于 2012-05-16T16:31:53.920 に答える
0
for ($i =1;$i<4;$i++){
    $var = 'item'.$i;
    echo $$var;
}

ここでは、変数 variableを作成するために double $ を使用しています。

于 2012-05-16T16:29:14.380 に答える
0

少し遅れており、受け入れられた答えがこれを行う適切な方法ですが、PHP では、OP が説明する方法で変数変数名にアクセスできます。

<?php
$item1 = 'a';
$item2 = 'b';
$item3 = 'c';
for($i=1;$i<=3;$i++)
    echo ${"item$i"}; //Outputs: abc
?>
于 2012-05-16T16:46:42.103 に答える
0

${'item'.$i}
Ifを使用する$i == 1と、 にアクセスします$item1

ただし、この場合は配列を使用することをお勧めします。

于 2012-05-16T16:30:04.037 に答える
0

個々の変数の代わりに配列を使用できますか? 次に、に基づくインデックス値で配列要素を参照できますi

$items = array();

$i = 1;
$items[$i] = "foo";

$i++;
$items[$i] = "bah";

echo $items[1], $items[2];     // gives "foobah"
于 2012-05-16T16:31:04.653 に答える