echo only value name no all in array

时间:2011-07-25 14:41:29

标签: php codeigniter file-upload multi-upload

我想要只回显值名称no all。

我的阵列:

$file_list[] = array(
                            'name' => $CI->upload->file_name,
                            'file' => $CI->upload->upload_path.$CI->upload->file_name,
                            'size' => $CI->upload->file_size,
                            'ext' => $CI->upload->file_ext,
                            'image_type' => $imageVar->image_type,
                            'height' => $imageVar->height,
                            'width' => $imageVar->width
                            );
                }

我的foreach:

foreach($upload_data as $file) {
    echo '<li><ul>';
    foreach ($file as $item => $value) {
        echo '<li>'.$item.': '.$value.'</li>';
    }
    echo '</ul></li>';
 } 

现在输出:

  
      
  • 名称:Chrysanthemum19.jpg
    文件:   D:/xampp/htdocs/Siran-mehdi/uploads/Chrysanthemum19.jpg
    尺寸:   858.78
    分机:.jpg
    image_type:jpeg
    高度:768
      宽度:1024

  •   
  • 名称:Desert19.jpg
    文件:D:/xampp/htdocs/Siran-mehdi/uploads/Desert19.jpg
    尺寸:826.11
      分机:.jpg
    image_type:jpeg
    高度:768
    宽度:1024

  •   

我想要这个输出:

  

Chrysanthemum19.jpg,Desert19.jpg

见全班和控制器
class Multi_upload(libraries) CI_Controller

尊重

6 个答案:

答案 0 :(得分:1)

$names = array();
foreach ($file_list as $file) {
  $names[] = $file['name'];
}
echo implode(',', $names);

使用PHP5.3,您可以将其压缩一点

echo implode(',', array_map(function ($file) {
  return $file['name'];
}, $file_list);

但两者之间没有语义差异。

答案 1 :(得分:1)

您正在打印所有文件信息数据。您只想打印它的名称。这里:

foreach($upload_data as $file) {
    echo '<li>' . $file->name . '</li>';
}

答案 2 :(得分:1)

尝试

foreach($upload_data as $file) {
    echo '<li><ul>';
    foreach ($file as $item => $value) {
        if ($item == 'name'){
             echo '<li>'.$item.': '.$value.'</li>';
        }
    }
    echo '</ul></li>';
 } 

Tjeu

答案 3 :(得分:0)

使用:

foreach($upload_data as $file) {
    echo '<li><ul>',$file['name'],'</ul></li>';
 } 

答案 4 :(得分:0)

尝试这样的事情:

foreach($upload_data as $file) {
    foreach ($file as $item) {
        $return[] = $file['name'];
    }
}
echo implode(",",$return);
$to_store_in_db = serialize($return);

添加序列化

答案 5 :(得分:0)

首先,您需要找到输出文件名的循环部分:

echo '<li>'.$item.': '.$value.'</li>';

您只希望在$item等于'name'时显示该值。你可以在这样的代码中表达:

$file['name']

然后,消除代码中对所需输出无贡献的所有部分。您的新代码可能如下所示:

$output = array();

foreach($upload_data as $file) {
    $output[] = $file['name'];
}

echo implode( ',' $output );