0

答えはウェブ全体にあると確信していますが、これを検索する適切な方法がわかりません。

foreach ($sections as $key => $inside) {

      foreach ($inside['fields'] as $key => $field) {

          echo '<li>'.var_dump ($field['type']).'</li>';

      }

}

これにより、文字列のリストがダンプされます。

string(6) "switch"
string(6) "switch"
string(4) "text"
string(4) "text"
string(8) "textarea"
string(6) "switch"
string(9) "radio_img"
string(9) "radio_img"
string(10) "multi_text" 

もう 1 つ foreach を追加したいと思います。つまり、foreach の「スイッチ」または上記の文字列リストに必要な任意の文字列です。

だから何か

foreach ($sections as $key => $inside) {

      foreach ($inside['fields'] as $key => $field) {

            foreach ($field['type']['switch'] as $string) {

                //Loop through all switches 

            }

      }

}

これは私にとって新しいことであり、Googleで答えを見つけることができませんでした。文字列値を指定してそれぞれを反復する方法がわかりません。

操作:

foreach ($sections as $key => $inside) {
    foreach ($inside['fields'] as $key => $field) {
        if($field['type'] == 'switch') {
            echo '<div class="'.$field['id'].'-stackoverflow">mycontent</div>';
        } 
    }
}

これは次のようなものを出力します

<div id="main-stackoverflow">mycontent</div>
<div id="layout-stackoverflow">mycontent</div>
<div id="colors-stackoverflow">mycontent</div>
<div id="fonts-stackoverflow">mycontent</div>

次に、jQuery を使用して適切な div を適切なページに表示します。これはオプション パネルであり、オプションが非表示になっています。メイン オプションを選択すると、main-stackoverflow div が表示されます。これは単なる大まかな説明です..助けてくれてありがとう、アイデアがずっと頭の中にあったような簡単な質問をする必要がなかったらいいのにと思いますが、他の人の意見を聞くのはいいことです.

4

4 に答える 4

4

foreach3番目の必要はありません。

foreach ($sections as $key => $inside) {

    foreach ($inside['fields'] as $key => $field) {
        if($field['type'] == 'switch') {
            echo $filed['type'];
            // Or even increment an counter to display how many times it occurs
            // DO $new_arr[] = $field['type']['switch'];
        } 
    }

}
于 2013-08-24T07:22:10.183 に答える
1

別の foreach の代わりにスイッチを使用する

foreach ($sections as $key => $inside) {
    foreach ($inside['fields'] as $key => $field) {
       switch ($field['type'])
       {
           case "switch":
               //do something
               break;
           case "textarea":
               //do something
               break;
           case "multi_text":
               //do something
               break;
           // add other cases...
       }
    }
}
于 2013-08-24T07:24:47.830 に答える
0

文字列をループして何を達成したいですか?

それらを数えて for ループを実行できます。

foreach ($sections as $key => $inside) {

  foreach ($inside['fields'] as $key => $field) {

        foreach ($field['type']['switch'] as $string) {

            if($string == "switch"){
                $switch_counter++;
            }
            // ...

        }
        for($i=0; $i<$switch_counter, $i++) {
            // do something
        }

  }

}

于 2013-08-24T07:26:10.747 に答える