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

CodeIgniter中如何从数据库获取的数组中展示首个指定值?

解决CodeIgniter只显示第一个自定义字段的问题

你之前的尝试存在语法错误,比如$field[0 &&'name']是无效写法,且错误地对字符串类型的$value使用索引,导致无法正常获取数据。以下是两种符合需求的解决方案:

方案一:直接获取数组第一个字段

如果只需要显示projects的第一个自定义字段(值为空则不显示),可以直接取数组的第一个元素,无需循环:

<?php 
$custom_fields = get_custom_fields('projects');
if(!empty($custom_fields)){
    // 取数组第一个字段元素
    $first_field = $custom_fields[0];
    $value = get_custom_field_value($project->id, $first_field['id'], 'projects');
    
    // 仅当字段有值时显示
    if($value !== ''){
?>
<tr>
    <td class="bold"><?php echo ucfirst($first_field['name']); ?></td>
    <td><?php echo $value; ?></td>
</tr>
<?php 
    }
}
?>

方案二:获取第一个有值的自定义字段

如果需要显示第一个存在有效值的自定义字段(跳过空值字段,找到第一个非空的就停止),可以在循环中找到目标后终止循环:

<?php 
$custom_fields = get_custom_fields('projects');
$displayed = false;

if(count($custom_fields) > 0){
    foreach($custom_fields as $field){
        $value = get_custom_field_value($project->id, $field['id'], 'projects');
        
        if($value !== ''){
?>
<tr>
    <td class="bold"><?php echo ucfirst($field['name']); ?></td>
    <td><?php echo $value; ?></td>
</tr>
<?php 
            $displayed = true;
            break; // 找到第一个有值的字段后停止循环
        }
    }
}
?>

错误说明

  • $field[0 &&'name']是完全错误的语法,正确获取字段名称的写法是$field['name'];
  • 如果get_custom_field_value返回的是字符串而非数组,$value[0]只会取字符串的第一个字符,而非完整字段值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:40:45