2017-04-10 86 views
0

的最後一個值我寫了下面的循環創建WordPress的自定義控件更快:PHP嵌套「的foreach」循環只使用數組

<?php 
    /* Creates "Color Scheme" section */ 
    $wp_customize->add_panel('color_scheme', array(
    'title' => 'Color Scheme', 
    'priority' => 120, 
)); 
    /* Creates "Navbar" section */ 
    $wp_customize->add_section('navbar', array(
     'title' => 'Navbar', 
     'description' => '', 
     'priority' => 120, 
     'panel' => 'color_scheme' 
    )); 
     /* Navbar Color Controls */ 
     $color_controls = array("menu-bg-color", "menu-button-color", "menu-site-title-color", "menu-overlay-bg-color", "menu-items-color"); 
     $color_labels = array("Background Color", "Button Color", "Title Color", "Overlay Background Color", "Overlay Item Color"); 
     foreach($color_controls as $control) { 
     foreach($color_labels as $label) { 
      $wp_customize->add_setting($control); 
      $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, $control, array(
      'label' => $label, 
      'section' => 'navbar', 
      'settings' => $control 
     ))); 
     } 
     } 
?> 

這是結果:Screenshot of my WordPress customizer 它不是通過標籤和唯一的循環使用最後一個值。

+0

你確定你想要一個嵌套循環嗎?您的控件和標籤似乎以1:1匹配。你想要一個帶有「背景顏色」標籤的控件「menu-bg-color」...用「按鈕顏色」標籤控制「菜單按鈕顏色」等等,對吧? –

+0

是的,我希望我的控件和標籤能夠匹配。我想我想要一個嵌套循環,但如果有更好的方法來做到這一點,我肯定想學習如何。 –

回答

0
$color_controls = array(
    "menu-bg-color" => "Background Color", 
    "menu-button-color" => "Button Color", 
    "menu-site-title-color" => "Title Color", 
    "menu-overlay-bg-color" => "Overlay Background Color", 
    "menu-items-color" => "Overlay Item Color" 
); 

foreach ($color_controls as $control => $label) { 
    $wp_customize->add_setting($control); 
    $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, $control, array(
    'label' => $label, 
    'section' => 'navbar', 
    'settings' => $control 
))); 
} 

我想這就是你要找的。嵌套循環用於當array1中的每個項目需要array2中的每個項目時。您實際上需要一個關鍵字和值的關聯數組,並循環遍歷它們,其中鍵是映射到標籤值的控件。

+0

這個工程!非常感謝你向我展示什麼是關聯數組!這對我來說是一場遊戲改變! –