Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2017, 08:54   #1
Юрий+
Пользователь
 
Регистрация: 28.02.2014
Сообщений: 13
По умолчанию Как текстовый файл разбить в массив

Есть напрмер текст
PHP код:
$text "холодно - жарко
мокро - сухо
пьяный - трезвый"

а как разбить в два массива, чтобы слова слева от пробела записались в массив1, а справа в массив2

P.S. была идея substr(strpos(explode))), но не получилось - толи не работает, то ли руки кривые...
Юрий+ вне форума Ответить с цитированием
Старый 06.02.2017, 09:06   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

читаем построчно - разбиваем с помощью explode (" - "
раскидываем в массивы....
если пробовали - покажите свой код
ADSoft вне форума Ответить с цитированием
Старый 06.02.2017, 09:19   #3
Юрий+
Пользователь
 
Регистрация: 28.02.2014
Сообщений: 13
По умолчанию

Пробовал так, но проблемма со вторым массивомЖ
PHP код:
<?php
$text 
"холодно - жарко
мокро - сухо
пьяный - трезвый"
;

$arr1=explode("-"$text);
print_r ($arr1);

$arr2=substr($text, (strpos($textexplode("\n"$text))); 
print_r ($arr2);

Соответственно на экране вот так:
Array ( [0] => холодно [1] => жарко мокро [2] => сухо пьяный [3] => трезвый )
Warning: strpos(): needle is not a string or an integer in Z:\home\test3.test\www\arr.php on line 34
холодно - жарко мокро - сухо пьяный - трезвый

Последний раз редактировалось Юрий+; 06.02.2017 в 09:34.
Юрий+ вне форума Ответить с цитированием
Старый 06.02.2017, 09:54   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

1. Разделить текст на строки по разделителю "\n".
2. Строки разделить на слова по разделителю " – ".
3. Слова раскидать по двум массивам: 0 и четные индексы – в первый массив, нечетные индексы – во второй массив.
Andkorol вне форума Ответить с цитированием
Старый 06.02.2017, 11:21   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а так?

Код:
<?php
$text = "холодно - жарко
мокро - сухо
пьяный - трезвый";

$arr1=[];
$arr2=[];
foreach (explode("\n", $text) as $oneline){
  $tmp=explode("-", $oneline);
  if(count($tmp)>1){
	$arr1[]=$tmp[0];
	$arr2[]=$tmp[1];
  }
}

// вывод результата на экран
echo nl2br(print_r($arr1,1)). "<br><hr>". nl2br(print_r($arr2,1));
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.02.2017, 12:50   #6
Юрий+
Пользователь
 
Регистрация: 28.02.2014
Сообщений: 13
По умолчанию

Serge_Bliznykov все отлично работает. Спасибо!
Юрий+ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив записей, текстовый файл alexalisa Паскаль, Turbo Pascal, PascalABC.NET 8 22.04.2011 00:39
разбить текстовый файл на слова pavel_1406 Общие вопросы C/C++ 3 19.12.2009 22:11
Массив и текстовый файл kJlaCuk Помощь студентам 1 22.09.2008 18:31
Текстовый файл в текстовый массив Kimimaru Общие вопросы C/C++ 1 02.12.2007 11:55