从数组中提取 CSV 值并将它们单独显示为列表

Posted

技术标签:

【中文标题】从数组中提取 CSV 值并将它们单独显示为列表【英文标题】:Extract CSV values from an array and display them Individually as a List 【发布时间】:2017-11-13 15:15:08 【问题描述】:

我的数据库中有一个 CSV 值数组,例如 category1[obj1,obj2,obj3..]

查看

<?php echo $row_company->category1;?>

控制器

$row_company = $this->employers_model->get_company_details_by_slug($company_name);

然后,employees_model 调用一个过程,该过程依次执行所需的查询,以这种方式显示 row = category1 的内容,

obj1,obj2,obj3...

我希望能够在没有逗号的情况下显示此结果,并显示为这样的列表

obj1 obj2 obj3..

我正在使用 CodeIgniter MVC 框架,我对 implode 函数的使用有一些模糊的想法,也遇到了 preg_split,但不知道从哪里开始干预,视图或控制器。 任何解决方案的方向都将不胜感激。

详细编辑:row_company。

$row_company = $this->employers_model->get_company_details_by_slug($company_name);      

    if(!$row_company)
        redirect(base_url(),'');
        exit;   
    

    $company_website = ($row_company->company_website!='')?validate_company_url($row_company->company_website):'';
    $data['row_company']        = $row_company;
    $data['company_logo']       = $company_logo;
    $data['company_join']       = $company_join;
    $data['company_website']    = $company_website;
    $data['company_location']   = $company_location;
    $data['title']              = $row_company->company_name.' jobs in '.$row_company->city;
    $this->load->view('company_view',$data);

employers_model 内容

public function get_company_details_by_slug($slug) 
    $Q = $this->db->query('CALL get_company_by_slug("'.$slug.'")');
    if ($Q->num_rows > 0) 
        $return = $Q->row();
     else 
        $return = 0;
    
    $Q->next_result();
    $Q->free_result();
    return $return;
   

程序本身get_company_details_by_slug

BEGIN
SELECT emp.ID AS empID, emp.sts1, pc.ID, emp.country, emp.city, pc.company_name, pc.company_description, pc.company_location, pc.company_website, pc.no_of_employees, pc.established_in, pc.company_logo, pc.company_slug, pc.category1, pc.category2, pc.category3, pc.company_join
FROM `pp_employers` AS emp 
INNER JOIN pp_companies AS pc
WHERE pc.company_slug=slug  AND emp.sts1 ='active';END

【问题讨论】:

你能告诉我们你是如何存储数据的吗? $row_company的内容是什么? 您可以简单地使用explode(',', $value) 将值拆分为值数组。 @PratikSoni,通过将 csv 文件上传到包含该特定行的相关数据的数据库中来存储数据。 $row_company 只是一个使用模型中的过程调用从数据库中提取值的函数。它可以包含该特定表中的所有值@u_mulder 【参考方案1】:

在参考了许多 codeigniter/php 论坛后想通了。 其实很简单,

<?php $array =  explode(',', $row_company->category1);
                    foreach ($array as $item) 
                    
                        echo "<li>$item</li>"; 
                    
?>

感谢 Nigel 指出要使用爆炸功能。

干杯

【讨论】:

以上是关于从数组中提取 CSV 值并将它们单独显示为列表的主要内容,如果未能解决你的问题,请参考以下文章

使用循环从文件中读取和提取有用数据无法生成值列表

从 SQL 中提取一列值并将它们放入数组 VBA [关闭]

提取numpy数组中所有1序列的第一个和最后一个索引并将它们附加到列表中?

从 SQL 表中提取照片和照片 ID 并将它们显示在 PHP 页面上的列表中

从三个单独的列表创建一个 .csv 文件

powershell Powershell脚本,用于从CSV中提取数据并将其放入SharePoint列表中。