2011-01-09 31 views
0

だから多次元配列はこのように見えます。多次元配列から配列を取り出す方法

$config = array(
    "First Name" => array(
      "user" => $_POST['firstname'], 
      "limit" => 35, 
     ), 
    "Last Name" => array(
      "user" => $_POST['lastname'], 
      "limit" => 40, 
     ), 
); 

私はconfig配列内の配列を使いたいので、私のアプローチはforeachループを使うことです。

foreach($config as $field => $data) { 

} 

今私は$データは私の配列になりますことを知っているが、それは私だけが、すでにいただきました!の半分を取得するので、私はforeach文の外にそれを使用することはできませんようです。使用しますprint_rあなたはそれがループの外側を示してものを見ることができます。

Array 
(
    [user] => lastname 
    [limit] => 40 
) 

しかし、ループ内で、私はここますprint_rを使用するときには、私の結果である:

Array 
(
    [user] => firstname 
    [limit] => 35 
) 
Array 
(
    [user] => lastname 
    [limit] => 40 
) 

私はそれがあることで何かを持っている想像しますforeachループを使用します。私は別の配列にデータを格納する$ data配列のforeachを実行しようとしましたが、うまくいきませんでした。

foreachループの外でこれを使用する方法はありますか?

申し訳ありませんが、これは非常に簡単な答えがあると確信していますが、私はちょうど困惑し、これを行う方法を考えることができません。ありがとう。

答えて

1

$config['First Name']は、最初の配列$config['Last Name']を返します。

など。

​​

あなたは配列に掛けた場合、ループが終了したら、その後、$dataは、アレイの最後の要素を指します。

これは必要なものですか?そうでない場合は、質問を明確にしてください。

いずれにしても、Arrays in PHPについてお読みください。

+0

これはうまくいきますが、その$ data配列のループを実行する必要がある場合、私はお互いに2つのループを持っているので、foreachループの外でその$ data配列を使用することになりました。 –

+0

@Mike Smith:だから?ネストされたループがある場合、ネストされたループがあります。配列のサイズにもよりますが、これは悪いことではありません。 '$ data = $ config ['First Name']のように、値を手動で割り当てる場合。/*ループ上の$ data * /; $ data = $ config ['Last Name'];/*再びデータをループする*/'あなたは効果的に同じことをしています。内部配列のキーが常に存在していて、それがわかっていれば、それらをループする必要はありません。それらに直接アクセスして内部ループを保存することができます。 –

+0

ありがとうございます。私は先に進もうとしています。 –

0

$ config ['First Name']と$ config ['Last Name']という2つのサブアレイにアクセスできます。

これはあなたがやりたいことですか?

0

これは実際には多次元配列ではなく、グリッドや行列として格納されていないことを理解することです(たとえばCの真の多次元配列とは異なります)。むしろ配列内に格納された配列だけです。

あなたの見出しの質問に答えるためには、「リトリーブする」という意味にかかっています。