0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 18
1

Как из текстового файла создать ассоциативный массив?

18.02.2016, 12:23. Показов 2874. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется текстовый файл вида:


Иванов:Петр;
Петров:Иван;
Сидоров:Иван;
и тд.

Первое значение уникально, второе нет...
Как этот текст преобразовать в ассоциативный массив и организовать цикл перебора массива?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2016, 12:23
Ответы с готовыми решениями:

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

Как динамически создать ассоциативный массив?
Покажите как создавать динамически ассоциативный массив. Например в скрипте <?php...

Как создать ассоциативный массив в цикле foreach?
Здравствуйте! Как можно создать ассоциативный массив внутри цикла? Сейчас у меня одномерный массив...

Создать массив, содержащий действительные числа из текстового файла.
Помогите!!! Очень срочно нужно!!! 4. Дан текстовый файл input.txt, содержащий действительные числа...

5
Hello Kitty
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
18.02.2016, 12:26 2
Цитата Сообщение от ushak66 Посмотреть сообщение
ассоциативный массив
пример массива
0
0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 18
18.02.2016, 12:27  [ТС] 3
Array
{
Иванов=>Петр
Петров=>Иван
....
}
0
Hello Kitty
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
18.02.2016, 12:39 4
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
        //Enter your code here, enjoy!
$txt='
Иванов:Петр;
Петров:Иван;
Сидоров:Иван;
';
$result=[];
preg_replace_callback( "#([^:]*):([^;\n]*)[^\n]*\n#si" , function($m) use(&$result) {
    $result[$m[1]]=$m[2];
} ,
trim( preg_replace( "#\n{2,}#" , "\n" , str_replace( ["\n","\r"] , "\n" , $txt ) ) ) . "\n" );
print_r($result);
Добавлено через 16 секунд
http://sandbox.onlinephpfuncti... d05ff2c9ad
0
14 / 27 / 7
Регистрация: 06.12.2013
Сообщений: 178
18.02.2016, 12:50 5
Лучший ответ Сообщение было отмечено ushak66 как решение

Решение

Попробуй так, понимаю что говно код можно сделать с помощью regex, но это для меня долго:
PHP
1
2
3
4
5
6
7
$lines = file('text.txt');
foreach ($lines as $line) {
    $arrtemp = explode(":", rtrim($line, ";"));
    $arr[$arrtemp[0]] = $arrtemp[1];
}
 
print_r($arr);
1
0 / 0 / 0
Регистрация: 18.08.2015
Сообщений: 18
19.02.2016, 07:47  [ТС] 6
То, что надо...
0
19.02.2016, 07:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2016, 07:47
Помогаю со студенческими работами здесь

Создать ассоциативный массив
подскажите, как создать двумерный массив в c#, аналогично следующему массиву в пхп: $massiv =...

Создать ассоциативный массив
Здраствуйте, уважаемые форумчане, помогите мне пожалуйста с такой задачкой? Как создать такой...

Создать ассоциативный массив фиксированного размера
Нужно создать массив, который вел бы себя следующим образом 1. Массив должен быть фиксированного...

Считывание данных из файла в ассоциативный массив
Доброго времени суток. Совсем недавно начал изучение php после плюсов, есть некоторые проблемы....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru