Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
19 / 17 / 6
Регистрация: 18.09.2015
Сообщений: 86

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

17.12.2016, 05:19. Показов 3766. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru