0

私はかなり長い間phpをやっていませんでしたが、今は小さなスクリプトを作成することに決めましたが、以前に抱えていた問題に遭遇し、自分で解決することができましたが、今はできません.

私がそのような「n」個の配列を持っているとしましょう...

$numbers1=array('32','16','29','41','36');
$numbers2=array('13','50','47','7','39');
$numbers3=array('3','4','29','35','31');

そして、「forループ」を使用して配列名を生成し、配列の特定の要素および/または配列自体を出力したい...

for($count1=1;$count1<=3;$count1++)
{
    $num1='numbers'.$count1;
    print_r($$num1); //this outputs what's inside all arrays as expected
    echo $$num1[0];
}

「echo $num1[0]」が問題であり、次の出力「32133」を取得するすべての配列の要素 0 からコンテンツを「エコー」したかったことを説明するためにそこにあります。

私はずっと前にphpを使い始めたときにstackoverflowで同様の質問をしましたが、その質問に対する回答はこの状況では機能せず、stackoverflowで検索して一緒にグーグルを失った2時間もありません。

4

3 に答える 3

2

を使用する必要があるため{}、PHP は変数の解釈方法を認識します。

${$num1}[0]

それを試してみてください。それはあなたが望むように動作するはずです。

$$num1[0]として解釈されます${$num1[0]}(したがって、PHP は を探し$nます)。

デモ: http://codepad.org/yn1JUG5U

于 2012-09-06T21:19:18.467 に答える
1

このように繰り返すことはできますが、お勧めしません。アレイのセットアップを再考する必要があります。

<?php
$numbers1=array('32','16','29','41','36');
$numbers2=array('13','50','47','7','39');
$numbers3=array('3','4','29','35','31');

for( $i=1; $i<=3; $i++ )
{
    $array = 'numbers'.$i;
    
    foreach( $$array as $v )
    {
        echo $v .' ';
    }
    
    echo "\n";
}
?>

出力:

32 16 29 41 36

13 50 47 7 39

3 4 29 35 31

于 2012-09-06T21:23:08.010 に答える
0

次のようなものを挿入する必要があります。

$my_array = $$num1;
echo $my_array[0];

編集: @Rocketの答えに行きます-少しきれいです。

于 2012-09-06T21:18:56.570 に答える