С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 6

Считывание массивов, ассоциативных массивов из файлов

17.04.2016, 09:51. Показов 2609. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 2 массива - выведено через print_r
PHP
1
Array ( [783874] => Array ( [name] => Менеджер 3 [tasks] => Array ( [0] => Array ( [id] => 2111274 [element_id] => 4798738 [element_type] => 1 [text] => задача на менеджера 3 в контакте 4798738 [complete_till] => 1460840340 ) ) ) [783871] => Array ( [name] => Менеджер 2 [tasks] => Array ( [0] => Array ( [id] => 2111258 [element_id] => 4706198 [element_type] => 3 [text] => задача на менеджера 2 в компании 4706198 [complete_till] => 1460840340 ) ) ) [783868] => Array ( [name] => Менеджер 1 [tasks] => Array ( [0] => Array ( [id] => 2111254 [element_id] => 2339676 [element_type] => 2 [text] => задача на менеджера 1 в сделке 2339676 [complete_till] => 1460926740 ) ) ) [580749] => Array ( [name] => Кирилл [tasks] => Array ( [0] => Array ( [id] => 2110500 [element_id] => 0 [element_type] => 0 [text] => новая задача [complete_till] => 1460840340 ) [1] => Array ( [id] => 2123696 [element_id] => 2623290 [element_type] => 2 [text] => новая задача в 2623290 [complete_till] => 1462049950 ) ) ) )
PHP
1
Array ( [0] => 2110500 [1] => 2111254 [2] => 2111274 [3] => 2111258 [4] => 2123696 )
В файлах лежат вот так -
1-
PHP
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
array (
  783874 => 
  array (
    'name' => 'Менеджер 3',
    'tasks' => 
    array (
      0 => 
      array (
        'id' => '2111274',
        'element_id' => '4798738',
        'element_type' => '1',
        'text' => 'задача на менеджера 3 в контакте 4798738',
        'complete_till' => 1460840340,
      ),
    ),
  ),
  783871 => 
  array (
    'name' => 'Менеджер 2',
    'tasks' => 
    array (
      0 => 
      array (
        'id' => '2111258',
        'element_id' => '4706198',
        'element_type' => '3',
        'text' => 'задача на менеджера 2 в компании 4706198',
        'complete_till' => 1460840340,
      ),
    ),
  ),
  783868 => 
  array (
    'name' => 'Менеджер 1',
    'tasks' => 
    array (
      0 => 
      array (
        'id' => '2111254',
        'element_id' => '2339676',
        'element_type' => '2',
        'text' => 'задача на менеджера 1 в сделке 2339676',
        'complete_till' => 1460926740,
      ),
    ),
  ),
  580749 => 
  array (
    'name' => 'Кирилл',
    'tasks' => 
    array (
      0 => 
      array (
        'id' => '2110500',
        'element_id' => '0',
        'element_type' => '0',
        'text' => 'новая задача',
        'complete_till' => 1460840340,
      ),
      1 => 
      array (
        'id' => '2123696',
        'element_id' => '2623290',
        'element_type' => '2',
        'text' => 'новая задача в 2623290',
        'complete_till' => 1462049950,
      ),
    ),
  ),
)
2 -
PHP
1
2
3
4
5
6
7
array (
  0 => '2110500',
  1 => '2111254',
  2 => '2111274',
  3 => '2111258',
  4 => '2123696',
)
Задача - считать их как массивы.
Что делал:
$users= file_get_contents("taskid.txt") ; - выдает мне строкой. обратиться к $users[0] - нельзя, пишет первую букву a из слова array.

exploid() - выдает что -то не понятно мне. что прочел в файле - то и перевел.
PHP
1
2
3
4
5
6
7
8
$users=  file_get_contents("taskid.txt") ;
$data = explode(",", $users);
print_r($data[2]);
echo '<br>';
foreach($data as $key=>$value) 
  { 
      echo $key. ' - '. $value. '<br>' ;
  }
Вывод:

0 - array ( 0 => '2110500'
1 - 1 => '2111254'
2 - 2 => '2111274'
3 - 3 => '2111258'
4 - 4 => '2123696'
5 - )


Прошу совета, как правильно считать данные из файлов, для последующей работы с ними как с массивами.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.04.2016, 09:51
Ответы с готовыми решениями:

Сравнение ассоциативных массивов
Есть 2 ассоциативных массива: Array1 ( =&gt; value1 =&gt; value2 =&gt; value31 =&gt; value4 )

Вычитание ассоциативных массивов
Как можно реализовать такое вычитание ассоциативных массивов: Есть массивы $arr1 и $arr2. $arr1 = array (&quot;a&quot; =&gt;...

Соединение двух ассоциативных массивов
Есть два массива, которые нужно соединить, но не через array_merge(), а так, чтобы сначала был элемент первого массива, затем второго,...

4
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
17.04.2016, 12:25
Для чтения массивов из файла массив в файле должен храниться в сериализированном виде.
Для начала массив надо записать в файл в сериализированном виде.
PHP
1
file_put_contents('1.txt', serialize($arr));//$arr - ваш массив
После записи это выглядит вот так:
Кликните здесь для просмотра всего текста

a:4:{i:783874;a:2:{s:4:"name";s:18:"Мене джер 3";s:5:"tasks";a:1:{i:0;a:5:{s:2:"id";s: 7:"2111274";s:10:"element_id";s:7:"47987 38";s:12:"element_type";s:1:"1";s:4:"tex t";s:66:"задача на менеджера 3 в контакте 4798738";s:13:"complete_till";i:14608403 40;}}}i:783871;a:2:{s:4:"name";s:18:"Мен еджер 2";s:5:"tasks";a:1:{i:0;a:5:{s:2:"id";s: 7:"2111258";s:10:"element_id";s:7:"47061 98";s:12:"element_type";s:1:"3";s:4:"tex t";s:66:"задача на менеджера 2 в компании 4706198";s:13:"complete_till";i:14608403 40;}}}i:783868;a:2:{s:4:"name";s:18:"Мен еджер 1";s:5:"tasks";a:1:{i:0;a:5:{s:2:"id";s: 7:"2111254";s:10:"element_id";s:7:"23396 76";s:12:"element_type";s:1:"2";s:4:"tex t";s:62:"задача на менеджера 1 в сделке 2339676";s:13:"complete_till";i:14609267 40;}}}i:580749;a:2:{s:4:"name";s:12:"Кир илл";s:5:"tasks";a:2:{i:0;a:5:{s:2:"id"; s:7:"2110500";s:10:"element_id";s:1:"0"; s:12:"element_type";s:1:"0";s:4:"text";s :23:"новая задача";s:13:"complete_till";i:146084034 0;}i:1;a:5:{s:2:"id";s:7:"2123696";s:10: "element_id";s:7:"2623290";s:12:"element _type";s:1:"2";s:4:"text";s:34:"новая задача в 2623290";s:13:"complete_till";i:14620499 50;}}}}

Далее пользуемся функцией unserialize(), что привести массив в исходный вид и работать с ним.
PHP
1
$users = unserialize(file_get_contents('1.txt'));
Ну а далее все просто:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function myForeach($arr){
    if(is_array($arr)){
        foreach($arr as $k => $v){
            echo '['.$k.'] => '.$v."\n";
            if(is_array($v)){
                myForeach($v);
            }
        }
    }
    else echo 'Объект не является массивом';
}
myForeach($users);
Вроде ничего не забыл.
1
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
17.04.2016, 16:04
Цитата Сообщение от Пифагор Посмотреть сообщение
function myForeach($arr){
* * if(is_array($arr)){
* * * * foreach($arr as $k => $v){
* * * * * * echo '['.$k.'] => '.$v."\n";
* * * * * * if(is_array($v)){
* * * * * * * * myForeach($v);
* * * * * * }
* * * * }
* * }
* * else echo 'Объект не является массивом';
}
myForeach($users);
Или так
PHP
1
2
3
4
5
6
$ckick =[];
array_walk_recursive($arr,function ($v) use (&$click){
   $click[] = $v; 
    
});
print_r($click);
0
Hello Kitty
 Аватар для WhiteMind
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
17.04.2016, 16:25
Цитата Сообщение от pascal_n00b Посмотреть сообщение
В файлах лежат вот так -
это результат var_export, не какие expolde там не нужны. только мешают
PHP
1
2
3
4
5
6
7
8
9
<?php
  
function  var_import( $text ) {
    eval( '$result = ' . $text . ';' );
    return $result;
} 
 
$users = file_get_contents("taskid.txt") ;
$users = var_import( $users );
0
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 6
17.04.2016, 16:42  [ТС]
Помогли разобраться.
Спасибо, ребята, всем

**closed**
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.04.2016, 16:42
Помогаю со студенческими работами здесь

Сбор ключей и значений для многоуровневых ассоциативных массивов
Есть массив $arr = , 'val4' =&gt; , ], ]; Из него нужно вытащить все уникальные ключи и значения в новый массив....

Нужно преобразовать массив ассоциативных массивов в единый ассоциативный массив, а у меня никак не получается
Как преобразовать массив на скрине так, чтобы получился массив: =&gt; FB =&gt; FREE При этом длинна массива массивов изменчива....

Объединение многомерных ассоциативных массивов
Как объединить два массива следующего вида: $data = array ( 'info' =&gt; array ( 'pg01' =&gt; 'Page 01', 'pg02'...

Класс ассоциативных массивов
Как сделать класс для таких понятий, у которых должно быть два параметра, например, тип ключа и тип значения у ассоциативного массива? Не...

Перебор ассоциативных массивов
здравствуите читал что перебирать асоцятивного масива в яваскрипые можно через for ... var .... in сделал такое, не виведит ничего,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru