PHP 嵌套 'foreach' 循环仅使用数组的最后一个值
PHP nested 'foreach' loop only using last value of array
我编写了以下循环来更快地创建 WordPress 自定义控件:
<?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
它没有遍历标签,它只使用最后一个值。
$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
)));
}
我想这就是您要找的。嵌套循环适用于当您希望 array2 中的每个项目之一用于 array1 中的每个项目时。你实际上想要一个键和值的关联数组并循环遍历它们,其中键是你的控件,映射到你的值是标签。
我编写了以下循环来更快地创建 WordPress 自定义控件:
<?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 它没有遍历标签,它只使用最后一个值。
$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
)));
}
我想这就是您要找的。嵌套循环适用于当您希望 array2 中的每个项目之一用于 array1 中的每个项目时。你实际上想要一个键和值的关联数组并循环遍历它们,其中键是你的控件,映射到你的值是标签。