echo только значение name нет всего в массиве - PullRequest
0 голосов
/ 25 июля 2011

я хочу, чтобы эхо только значение имя не все.

мой массив:

$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>';
 } 

вывод сейчас:

  • имя: хризантема19.jpg
    файл: D: /xampp/htdocs/Siran-mehdi/uploads/Chrysanthemum19.jpg
    размер: 858.78
    ext: .jpg
    image_type: jpeg
    высота: 768
    ширина: 1024

  • имя: Desert19.jpg
    файл: D: /xampp/htdocs/Siran-mehdi/uploads/Desert19.jpg
    размер: 826.11
    ext: .jpg
    image_type: jpeg
    высота: 768
    ширина: 1024

я хочу этот вывод:

Chrysanthemum19.jpg, Desert19.jpg

до встречи с вами полный класс и контроллер
класс Multi_upload (библиотеки) CI_Controller

С уважением

Ответы [ 6 ]

1 голос
/ 25 июля 2011

Попробуйте

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

1 голос
/ 25 июля 2011

Вы печатаете все данные файла информации. Вы хотите напечатать только название этого. Здесь:

foreach($upload_data as $file) {
    echo '<li>' . $file->name . '</li>';
}
1 голос
/ 25 июля 2011
$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);

Но семантической разницы между ними нет.

0 голосов
/ 25 июля 2011

Сначала вам нужно найти часть вашего цикла, которая выводит имя файла:

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

Вы хотите, чтобы значение отображалось только тогда, когда $item равно 'name'.Вы можете выразить это в коде, подобном следующему:

$file['name']

Затем удалите все части вашего кода, которые не способствуют желаемому выводу.Ваш новый код может выглядеть так:

$output = array();

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

echo implode( ',' $output );
0 голосов
/ 25 июля 2011

попробуйте что-то вроде этого:

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

Добавление сериализации

0 голосов
/ 25 июля 2011

Использование:

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