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
相关产品推荐
相关产品推荐

