You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Codestar Framework中输出子数组的选项标签而非键值

解决Codestar Framework嵌套Group中Select选项显示标签而非键值的问题

要解决这个问题,核心思路是保留Select选项的键值对映射关系——因为Codestar Framework在存储Select字段值时,只会保存选项的键(比如low),而不是显示的标签(比如Low)。我们需要在输出时通过键去匹配对应的标签。

步骤1:把Price选项抽成可复用的数组

首先,把Price的选项定义成一个独立的数组,这样配置和前端输出都能复用,避免重复代码,也方便后续维护:

// 定义价格选项的键值对,后续配置和输出都用这个数组
$price_options = array(
    'low'    => 'Low',
    'medium' => 'Medium',
    'high'   => 'High',
);

步骤2:更新Codestar配置

把原来配置里的Price选项替换成这个数组,让配置更简洁统一:

array(
    'id' => 'rows',
    'type' => 'group',
    'title' => 'Rows',
    'accordion_title_auto' => false,
    'accordion_title_prefix' => 'Row',
    'accordion_title_number' => true,
    'fields' => array(
        array(
            'id' => 'columns',
            'type' => 'group',
            'title' => 'Columns',
            'accordion_title_auto' => false,
            'accordion_title_prefix' => 'Column',
            'accordion_title_number' => true,
            'fields' => array(
                array(
                    'id' => 'column-color',
                    'type' => 'select',
                    'title' => 'Color',
                    'options' => array(
                        'red' => 'Red',
                        'blue' => 'Blue',
                        'green' => 'Green',
                    ),
                ),
                array(
                    'id' => 'column-price',
                    'type' => 'select',
                    'title' => 'Price',
                    'options' => $price_options, // 复用定义好的数组
                ),
            ),
        ),
    ),
)

步骤3:修改前端输出代码

在遍历输出时,通过存储的键值去$price_options数组里获取对应的显示标签,同时加上isset判断避免报错:

$rows = $options['rows'];
// 复用价格选项数组(如果已经在全局定义过,这里可以省略)
$price_options = array(
    'low'    => 'Low',
    'medium' => 'Medium',
    'high'   => 'High',
);

foreach ( $rows as $id => $name ) {
    echo '<div class="row-'. $id .'">';
    foreach ( $name['columns'] as $id_col => $name_col ) {
        // 通过键值获取显示标签, fallback到原始键值避免不存在的情况报错
        $price_label = isset($price_options[$name_col['column-price']]) 
            ? $price_options[$name_col['column-price']] 
            : $name_col['column-price'];
        
        echo '<div class="column-'. $id_col .' color-'. $name_col['column-color'] .'"> Price - '. $price_label .' </div>';
    }
    echo '</div>';
}

这样修改后,输出的内容就会完全符合你想要的格式,显示Price - Low这类标签文本而非原始键值。

内容的提问来源于stack exchange,提问作者Avigo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:14:43