![]()  | 
	
 
  | 
| 
	 | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здравствуйте. Натолкните пожалуйста на мысль, как разобраться с такой проблемой: 
		
	
		
		
		
		
		
		
			Есть текстовый файл с построчно идущими номерами такого вида: 8/1/2б 3/1 3/3 4 6/1 7 8/2 6/1/2 6/1/4 8 4 8/1 2 8/1/1а 3/2 8/1/2а 3 1 6/1/3 8/1/1б 6/1/1 5 10 8/1/3б 6 8/3 9 Строки в этом файле нужно привести к такому состоянию: * на "разветвлениях" буквы при наличии указывают какие номера должны стоять впереди 1 2 3 3/1 3/2 3/3 4 5 6 6/1 6/1/1 6/1/2 6/1/3 6/1/4 7 8 8/1 8/1/1а * 8/1/2а * 8/1/1б * 8/1/2б * 8/1/3б * 8/2 8/3 9 10 Т.е. отсортировать с учетом "вложенности". для наглядности: ![]() Заранее спасибо за любые подсказки. Последний раз редактировалось abc26, 23.03.2012 в 10:07.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 можно разбить строки в какую-нибудь вложенную структуру, и упорядочить её 
		
	
		
		
		
		
		
	
		
		
	
	
	или regexp-ами или чем-другим привести к виду 001 006/001/003 008/001/б01 006/001/001 005 010 упорядочить stringlist-ом, и привести обратно к норм виду снова regexp-ами...  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 PHP код: 
	
		
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 еще можно просто сравнивать строки. строка "2" по умолчанию больше "1". "1/2" > "1/1" но меньше чем "2". соответственно вложенность по такому же принципу сама отсортируется. сортировку делать любым методом для чисел, хоть через массив, просто в ячейках массива будут строки, а не числа. 
		
	
		
		
		
		
		
		
			поправьте меня, если не так. Последний раз редактировалось nixel, 23.03.2012 в 18:35.  |