19 / 17 / 6
Регистрация: 18.09.2015
Сообщений: 86

Парсинг массива

17.12.2016, 05:19. Показов 3831. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ку-ку, вопрос следующий, как провести правильный парсинг массива вот такого типа, чет не чего не помогает
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Array
(
    [filename] => Array
        (
            [name] => Array
                (
                    [0] => USER_AGENT Браузеров, релиз 2016.txt
                    [1] => useragent_web-how.ru_.xlsx
                    [2] => Книга1.xlsx
                )
 
            [type] => Array
                (
                    [0] => text/plain
                    [1] => application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                    [2] => application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                )
 
            [tmp_name] => Array
                (
                    [0] => Z:\tmp\phpCCC.tmp
                    [1] => Z:\tmp\phpCCD.tmp
                    [2] => Z:\tmp\phpCCE.tmp
                )
 
            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )
 
            [size] => Array
                (
                    [0] => 5401
                    [1] => 56190
                    [2] => 262404
                )
 
        )
 
)
Вот так я пытался сделать:
PHP
1
2
3
4
5
6
7
foreach($_FILES as $var => $var1){
        foreach($var1 as $var2 => $var3){
            foreach($var3 as $var4){
                echo $var2.' '.$var4.'<br>';
            }
        }
    }
Получил вот это:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
name USER_AGENT Браузеров, релиз 2016.txt
name useragent_web-how.ru_.xlsx
name Книга1.xlsx
type text/plain
type application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
type application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
tmp_name Z:\tmp\phpCCC.tmp
tmp_name Z:\tmp\phpCCD.tmp
tmp_name Z:\tmp\phpCCE.tmp
error 0
error 0
error 0
size 5401
size 56190
size 262404
Нужен результат типа:
Code
1
2
name1 type1 tmp_name1 size1
useragent_web-how.ru_.xlsx  application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Z:\tmp\phpCCC.tmp 56190
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2016, 05:19
Ответы с готовыми решениями:

Парсинг Массива
Доброе день ув. Программисты. Есть папка &quot;Base&quot; в ней текстовые файлы вида &quot;123456789&quot; без расширения. Считываю всю папку и...

Парсинг многомерного массива
Здравствуйте. Не подскажите как обработать многомерный массив. Имеем: stdClass Object ( =&gt; 200 =&gt; Array ...

Парсинг sitemap.xml массива ссылок
$file = 'http://site/sitemap.xml'; $xml = file_get_contents($file); $movies = new \SimpleXMLElement($xml, LIBXML_NOCDATA); ...

5
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
17.12.2016, 11:16
Complex138, вроде так
PHP
1
$array["filename"]["name"][0]
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
17.12.2016, 14:47
Лучший ответ Сообщение было отмечено Complex138 как решение

Решение

Complex138,
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$count = count($_FILES['filename']['name']);
 
echo '<table border=1 cellspacing=0 cellpadding=5><tr>';
foreach ($_FILES['filename'] as $key => $value)
        echo '<th>'.$key.'</th>';
echo '</tr>';
for ($i = 0; $i < $count; ++$i) {
    echo '<tr>';
    foreach ($_FILES['filename'] as $key => $value) {
        echo '<td>'.$value[$i].'</td>';
    }
    echo '</tr>';
}
echo '</table>';
Добавлено через 5 минут
Либо обратите внимание на этот комментарий.
1
19 / 17 / 6
Регистрация: 18.09.2015
Сообщений: 86
17.12.2016, 23:36  [ТС]
Спасибо, плохо что мало тут хороших специалистов. Только проблему я уже решил, но твой вариант лучше и кода чуть меньше, поэтому возьму его.

Добавлено через 3 минуты
Мой вариант выглядит вот так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$count_file = count($_FILES['filename']['name']);
$name_file = $_FILES['filename']['name'];
$type_file = $_FILES['filename']['type'];
$size_file = $_FILES['filename']['size'];
    for($i=0; $i<$count_file; $i++){
        if($type_file[$i] =='image/png' || $type_file[$i] =='image/gif' || $type_file[$i] =='image/jpg'){
            echo $name_file[$i].' Является картинкой.<br>';
        }else{
            echo $name_file[$i].' Не является картинкой.<br>';
        }
        
        
    }
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
17.12.2016, 23:46
Цитата Сообщение от Complex138 Посмотреть сообщение
PHP
1
if($type_file[$i] =='image/png' || $type_file[$i] =='image/gif' || $type_file[$i] =='image/jpg'){
PHP
1
if (in_array($type_file[$i], array('image/png', 'image/gif', 'image/jpg'))) {
0
19 / 17 / 6
Регистрация: 18.09.2015
Сообщений: 86
18.12.2016, 00:16  [ТС]
Спасибо за более короткую форму!
У меня вопрос тогда возник, может поможешь решить...
PHP
1
2
3
4
5
6
7
8
9
for($i=0; $i<$count_file; $i++){
        if(in_array($type_file[$i], array('image/png', 'image/gif', 'image/jpg'))){
            echo $name_file[$i].' Является картинкой.<br>';
        }else{
            echo $name_file[$i].' Не является картинкой.<br>';
        }
        
        
    }
вот в этом цикле я пытаюсь проверить типы файлов на соответствия, все бы нечего, но последний файл не проверяется вообще, даже если он является картинкой, в чем может быть ошибка? Понять все не могу, почему так происходит.

Добавлено через 11 минут
Нашел причину исключения, файлы превыщающие размер не проходят валидность и отбрасываются, но почему ?
Вот результат теста иконок
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
            [size] => Array
                (
                    [0] => 307
                    [1] => 304
                    [2] => 324
                    [3] => 328
                    [4] => 289
                    [5] => 292
                    [6] => 308
                    [7] => 305
                )
 
        )
 
)
 
 
 
 
announce_read.gif Является картинкой.
announce_read_locked.gif Является картинкой.
announce_read_locked_mine.gif Является картинкой.
announce_read_mine.gif Является картинкой.
announce_unread.gif Является картинкой.
announce_unread_locked.gif Является картинкой.
announce_unread_locked_mine.gif Является картинкой.
announce_unread_mine.gif Является картинкой.


А вот тест больших картинок.
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            [size] => Array
                (
                    [0] => 484
                    [1] => 666
                    [2] => 15319
                    [3] => 223
                    [4] => 232
                )
 
        )
 
)
 
 
 
 
index.htm Не является картинкой.
background.gif Является картинкой.
created_by.jpg Не является картинкой.
icon_mini_members.gif Является картинкой.
icon_mini_message.gif Является картинкой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2016, 00:16
Помогаю со студенческими работами здесь

Парсинг "сокрытого" массива
Доброго времени суток, ребята! Помогите, пожалуйста, с решением такой проблемы: есть сайт с товаром, его цена изменяется в зависимости от...

Парсинг массива ссылок
Здравствуйте! На сайте есть страница новостей, которая имеет 32 перехода, на каждой странице видно лишь ближайшие 5 переходов Нужно...

Парсинг массива
Добрый день, у меня такая проблема: есть скрипт: $Computername = $env:COMPUTERNAME $adsi = &quot;WinNT://$Computername&quot; ...

Парсинг строк массива
У меня такая задача дана строка из строкового массива например&quot;Алиса в строне чудес&quot; и я ввожу &quot;иса в &quot; и...

Парсинг массива строк
Доброго времени суток. Помогите, пожалуйста, в решении следующей задачи. Есть TextBox, в который копируют массив строк вида: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru