2012-01-04 16 views
2

私は断片をつかんで変数を作成したいと思っています。以下は、アレイのサンプルは次のとおりです。php:配列から変数を作成する

array(17) { 
    [0]=> array(2) { 
     [0]=> int(1325003844) [1]=> array(2) { 
      [0]=> int(31) [1]=> string(19) "ONBOARD TEMPERATURE" } 
     } 

$ fooの[X] [1]とのxビーイングで見つけることができる値は、私が(上記引用符で囲まれたテキストのように)したいこのような32頭の異なる部分があります。 0〜31の値。 foreachやforを使用して変数の各繰り返しを繰り返し、そのテキストをプルして変数に追加するループを作成できるかどうかは疑問です。

だから私は持っている現在のコードは次のとおりです。

if(isset($result[1][10])) { // If index 10 of $result exists 
    $json_a = $result[1][10]; 
    var_dump ($json_a); 

私は単一の変数に必要な値を取得するには、私はjson_a $に$ foo_01をASSINGする必要が[0] [1]今、その後、それを32回してください。 ($ json_a [1] [1]、$ json_a [2] [1]、$ json_a [3] [1]など)私はむしろ1つのステートメントを一度にすべて割り当てます。

追加情報が必要な場合はお知らせください。再度、感謝します!

+0

すべてのテキストを1つの変数に集約するか、配列から抽出したインスタンスごとに新しい変数を作成しますか? –

+0

インスタンスごとに変数を作成したいとします。ありがとう! – prosborne

答えて

3

もちろん可能です。

//Initialize an array variable to hold the names 
$names= array(); 

//Creates an array of 32 strings (the names) 
foreach ($items as $item){ 
    $names[]=$item[1]; 
} 
//If you want to display all of the name at once, you can easily 
//Implode the array to echo all of the items with a linebreak in between 
echo implode('<br />', $names); 

//or you can cycle through the results and do something for each name 
//although this can be done in the original loop. 
foreach ($names as $name){ 
    echo $name.'<br />'; 
} 

あなたが表示するアレイアーキテクチャは少し奇妙なようです。あなたがしようとしていることについてあまり気にしていないことを知っていれば、このような形式はより良いと思いますか?

array(31) { 
    [0]=> array(2) { 
     [id]=> int(1325003844), 
     [name]=> "ONBOARD TEMPERATURE" 
    }, 
    [1]=> array(2) { 
     [id]=> int(1325003845), 
     [name]=> "NAME 2" 
    }, 
    etc... 
} 

このようにして、完成したアレイが完成したら、ループする準備が整いましたか?

UPDATE

foreach($results as $result){ 
    if(isset($result[1][10])) { // If index 10 of $result exists 
     $foo[] = $result[1][10]; 
    } 
} 

//Then you can access each one when needed 
echo $foo[1]; 
+0

私はこれらを使って作業を試みましたが、それを動作させることができませんでした。私はそれを少し明確にすることができると私の質問をudpated ... – prosborne

+0

1つのステートメントで32の異なる変数を割り当てることはできません。そのため配列が存在します。 '$ foo_01'の代わりに' $ foo_32'を使うと '$ foo [0]'〜 '$ foo [31]'を使います。更新 – Dutchie432

+0

をご覧くださいありがとう!配列の構造は残念ながらJSONオブジェクトから与えられたものです。しかし、あなたのコメントは私が私がやりたいことをすでにできていることを実際に示してくれました。私は、私が望むデータを印刷する変数を作成するステップを追加しましたが、実際の変数として$ foo [1] [10] [0] [1]を使うことができます。本当にありがとう! – prosborne

0

次の2つの連続した「$」を使用した場合、PHPは実際にその名前の新しい変数を作成するには、変数の値を使用します。例:

$var1 = 'variable2' 
$$var1 = 'hello'; 

echo $var1; 
echo $variable2; 

ウィル出力:あなたの上記の例から、

variable2 
hello 

が、しかし、あなたの命名規則は、それをサポートするように見えるいけない(「オンボード温度」にスペースがあります)ので、あなたが良いかもしれません関連IDキーを持つ配列を使用します。例:

$values[$foo[x][1]] = $foo[x][0]; 

はあなたに出力31だろう$values['ONBOARD TEMPERATURE']の変数になるだろう。

関連する問題