Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Разбить строки на массив

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Sig
Отправлено: 31 Января, 2012 - 16:05:28
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Подскажите как лучше разбить строки на массив пример

на входе

иван;васильевич;петров
семён;арсенович;швац
филин;пётр;иванович

разделитель - ; и ентер

на выходе

$fio[name][0]="иван"
$fio[name][1]="семён"
$fio[name][2]="филин"
$fio[lastname][0]="васильевич"
$fio[lastname][1]="арсенович"
$fio[lastname][2]="пётр"
$fio[fam][0]="петров"
$fio[fam][1]="швац"
$fio[fam][2]="иванович"
 
 Top
etoYA
Отправлено: 31 Января, 2012 - 16:19:11
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)






PHP:
скопировать код в буфер обмена
  1. $var = один;два;три;четыре;пять
  2. $var = explode(";", $var);
  3. print_r($var);

(Отредактировано автором: 31 Января, 2012 - 16:20:10)

 
 Top
Sig
Отправлено: 31 Января, 2012 - 16:28:30
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




такой вариант не подходит, т.к. я ввожу не одну стоку а много
разделителем слов в cтроке является - ;
а разделителем строк - ентер
 
 Top
illy
Отправлено: 31 Января, 2012 - 16:48:18
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $text="иван;васильевич;петров
  3. семён;арсенович;швац
  4. филин;пётр;иванович";
  5. $u=split(PHP_EOL,$text);
  6. foreach($u as $v){
  7. $fio['name'][]=preg_replace("#(.*);.*;.*#",'\\1',$v);
  8. $fio['lastname'][]=preg_replace("#.*;(.*);.*#",'\\1',$v);
  9. $fio['fam'][]=preg_replace("#.*;.*;(.*)#",'\\1',$v);
  10. }
  11. print_r($fio['name']);
  12. print_r($fio['lastname']);
  13. print_r($fio['fam']);
  14. ?>


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
snikers987
Отправлено: 31 Января, 2012 - 17:15:29
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Если строки берете из файла, то
PHP:
скопировать код в буфер обмена
  1.  
  2. $rgDatas = file('file.txt'); //если из файла
  3. //$rgDatas = explode("\n", $sContent); //создаем массив по переносу строки
  4. foreach($rgDatas as $sData){
  5.     $rgNames = explode(';', $sData)
  6.     $rgFio['name'][] = $rgNames[0];
  7.     $rgFio['lastname'][] = $rgNames[1];
  8.     $rgFio['fam'][] = $rgNames[2];
  9. }
  10. var_dump($rgFio);
  11.  

(Отредактировано автором: 01 Февраля, 2012 - 12:29:09)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Okula
Отправлено: 31 Января, 2012 - 17:38:47
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Я всех уделал Радость
PHP:
скопировать код в буфер обмена
  1. $str = 'иван;васильевич;петров
  2. семён;арсенович;швац
  3. филин;пётр;иванович';
  4.  
  5. $arr = preg_split('~(;|\s)~s', $str, -1, PREG_SPLIT_NO_EMPTY);
  6. var_dump($arr);

Результат:
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(9) {
  2.   [0]=>
  3.   string(8) "иван"
  4.   [1]=>
  5.   string(20) "васильевич"
  6.   [2]=>
  7.   string(12) "петров"
  8.   [3]=>
  9.   string(10) "семён"
  10.   [4]=>
  11.   string(18) "арсенович"
  12.   [5]=>
  13.   string(8) "швац"
  14.   [6]=>
  15.   string(10) "филин"
  16.   [7]=>
  17.   string(8) "пётр"
  18.   [8]=>
  19.   string(16) "иванович"
  20. }
  21.  
 
 Top
Sig
Отправлено: 01 Февраля, 2012 - 11:29:52
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




спасибо всем большое ! ! !
оказалось в итоге всё довольно просто и логично
 
 Top
Zuldek
Отправлено: 01 Февраля, 2012 - 13:01:11
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




ваш пример будет работать медленнее.
 
 Top
snikers987
Отправлено: 01 Февраля, 2012 - 13:59:30
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Okula пишет:
Я всех уделал Радость

А теперь почитай что дано, что нужно, и что у тебя вышло. Не говоря о том, что это работает медленнее.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Okula
Отправлено: 01 Февраля, 2012 - 14:18:41
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Ну может чуток не внимательно задание прочитал Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB