Forum Webscript.Ru
Программирование => PHP => Тема начата: ljets от 30 Июня 2005, 01:14:16
-
Имеется такой .txt:
Глаша|24|Пенза
Даша|18|Воронеж
Недаша|17|Воркута
Необходимо перегнать это богатство в массив таким образом, чтобы получилось 3 массива вроде:
Name[ ]
Age[ ]
City[ ]
Подозреваю, что это возможно, но с реализацией затык, поскольку паки-паки PHP не владею.
Спасибо за помощь.
-
[p]file_get_contents[/p] или [p]file[/p]
[p]explode[/p]
-
Спасибо hanslinger!
Вот, наваял:
$list = file("list.txt");
for($i = 0; $ilist($name[], $age[], $city[]) = explode("|", $list[$i], 3);
?>
Это оказалось даже проще, чем я думал!
-
Лучше так
foreach ($list as $line) list($arr[\'name\'][],$arr[\'age\'][],$arr[\'city\'][])=explode("|",$line);
-
Лучше так
foreach (file("list.txt"); as $line) list($arr[\'name\'][],$arr[\'age\'][],$arr[\'city\'][])=explode("|",$line);
=)
ljets, а если серьёзно, то не забудь, что кроме названия города у тебя в массиве будет ещё и перевод строки
-
Круто!
Как бы теперь рассортировать получившийся массив по городам, так чтобы каждый город сам был массивом?...
-
пройтись в цикле по массиву и добавлять элементы в новый массив, с нужной тебе структурой
-
Voila! Спасибо RomikChef за подсказку!
foreach (file(\'list.txt\') as $line) list($arr[\'name\'][],$arr[\'age\'][],$arr[\'city\'][])=explode("|",$line);
$cities=array_unique($arr[\'city\']);
foreach ($cities as $j=>$k){
foreach($arr[\'subj\'] as $i=>$l)
if ($k==$l)
$sub[$j][]=array($arr[\'name\'][$i],$arr[\'age\'][$i]);
}
А вот как бы теперь так сделать, чтобы скажем Самара всегда была первым элементом этого массива? Подозреваю, что надо сделать этот элемент первым еще в массиве cities, только вот как?
-
Сделал при помощи вот такой хитроумной конструкции:
$cities=array_unique($arr[\'city\']);
array_unshift($cities,"Самара");
$cities=array_unique($cities);
Но кажется мне, должен быть способ и поизящнее...