2012-01-07 10 views
-2

私はこのコードを以下のように機能させています。 function systemLoop($series) { ... }私はuberに失敗します。foreach文を関数に変換する

私はPHP(およびこのレベルでコーディング)と多次元配列を使い慣れています。だから、それを関数として機能させることは、私にとってさらに宇宙的である。しかし、私は "いくつかの"システムシリーズの配列を持っているので、私はそれをより良い解決策にすることができると思った。だから私がしなければならないのは電話ですsystemLoop("hyper"); systemLoop("business");

お手伝いができますか?関数に変換しようとすることで正しいことをしていますか?適切なステップがある場合は、可能なステップがありますが、機能を意図したとおりにすることを除外していますか?

$series = "super"; 
foreach ($systems[$series] as $names => $name) { 
    echo "<ul>"; 
    if (is_array($name)){ 
     echo "<h2>$names => $name</h2>"; 

     foreach($systems[$series][$names] as $details => $detail){ 
      if (is_array($detail)){}else{ 
       echo "<h3>$details => $detail</h3>"; 
      } 
     } 

     foreach($systems[$series][$names]['components'] as $components => $component){ 
      if(is_array($component)){ 

       foreach($systems[$series][$names]['components']['cpu'] as $part => $specs){ 
        echo "<li>cpu $part => $specs</li>"; 
       }//ends foreach 

      }else{ 
       echo "<li>$components => $component</li>"; 
      }//ends if is_array 
     }// ends foreach 
    }else{ 
     echo "<li>$name</li>"; 
    }//ends if is_array 
    echo "</ul>"; 
    echo "<hr/>"; 
}//ends foreach 
+0

あなたのforeachループを通して '$ systems [$ series] [$ names]'は '$ name'に置き換えなければなりません。 – cmbuckley

+7

"何も変わらない"とは、問題が何であるかを実際には教えてくれません。特に、問題/症状は何ですか? –

+0

@cbuckley - 私がすると、foreachは意図したとおりに動作しません。 –

答えて

1

は、それはあなたがグローバルまたは関数呼び出しのパラメータのいずれかとして行うことができます$システム変数を渡していないから来ている機能でそれをラップして、あなたの問題のように聞こえます。私はここで2例を紹介します:パラメータとして$システムを渡す

あなたはこのように呼ぶだろう
function systemLoop($series, $systems){ 

:グローバルとして

systemLoop('super', $systems); 

または$システムを渡す:

function systemLoop($series){ 
    global $systems; 

次に、このような関数を呼び出します。

systemLoop('super'); 

問題のように聞こえるので、どちらの方法でも問題が解決するはずです。

+0

$システムグローバル変数を追加すると、扱いになりました。私はそれが私が行方不明だった単純な事であることを知っていた。どうもありがとうございました :)。 –

+1

私はバグに遭遇した場合に "データに従う"ことを容易にし、$システムが変更されていることを明確にするために、値を渡すことをグローバルに勧めます。 – Fleep

+0

@Fleep "systemLoop($ series、$ systems)"のように値を渡すでしょうか?今は世界的な作品を完璧に追加して、私はそれを望んでいました。私は同意していない、私はちょうど値を渡すものがわからない... –

関連する問題