Есть скрипт PHP: <pre> <? $mass='16.05.2010 15:26:03 Продал ( ) за 49 для xxx [775549] ( ) yyy [39298006] (50 р) [7/7] 16.05.2010 15:26:30 Продал ( ) за 49 для xxx [1930955] ( ) yyy [39298004] (50 р) [7/7] 16.05.2010 15:28:02 Продал ( ) за 49 для xxx [1745777] ( ) yyy [39298007] (50 р) [7/7] 16.05.2010 16:34:15 Купил ( ) за 400 у xxx [715248] ( ) yyy [39301025] (50 р) [7/7]'; $strArr=explode("\r\n",$mass); foreach ($strArr as $key => $value) { $elem=explode(" ",$strArr[$key]); $uid=preg_replace('/[]|[]/','', $elem[9]); $ar[$key]=$uid ; asort($ar); print_r ($ar); } ?> </pre> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link href="e.css" rel="stylesheet" type="text/css"> </head> <body bgcolor="C9DFF5"> <p>Вставьте содержимое</p> <form action=index.php?a=in method=post> <textarea class= style="width: 99%;" name="parser" cols="40" rows="5"></textarea> <br><input type=submit class=input_b value=Анализ></form> Проблема в том что никак не могу вывести в один масив все четыре элемента, вместо этого получаются 4 масива с нарастающим от 1 до 4 элементов в них. Заранее очень благодарю!
print_r ($ar); - вынеси за пределы цикла, просто код так оформлен, что тебе самому трудно увидеть, где конец цикла PHP: } print_r ($ar);
Спасибо огромнейшее, весь день промучался, прошуршал поисковики и книги) а тут такая бональщина) зла не хватает
Ещё вопрос. При выполнении сценария получаю: Array ( [3] => 715248 [0] => 775549 [2] => 1745777 [1] => 1930955 ) как извлечить значений ключей?
извлеч 3,0,2,1 в таком порядке каком они идут. Это нужно для того что бы затем отсортировать и вывести на экран $mass в порядке убывания или возрастания значения в первых встречающихся квадратных скобочках []
PHP: <pre> <? $mass='16.05.2010 15:26:03 Продал ( ) за 49 для xxx [775549] ( ) yyy [39298006] (50 р) [7/7] 16.05.2010 15:26:30 Продал ( ) за 49 для xxx [1930955] ( ) yyy [39298004] (50 р) [7/7] 16.05.2010 15:28:02 Продал ( ) за 49 для xxx [1745777] ( ) yyy [39298007] (50 р) [7/7] 16.05.2010 16:34:15 Купил ( ) за 400 у xxx [715248] ( ) yyy [39301025] (50 р) [7/7]'; $strArr=explode("\r\n",$mass); foreach ($strArr as $key => $value) { $elem=explode(" ",$strArr[$key]); $uid=preg_replace('/[]|[]/','', $elem[9]); $ar[$key]=$uid ; } asort($ar); foreach ($ar as $key => $value) echo "Key: $key Value: $value\n"; ?> </pre> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link href="e.css" rel="stylesheet" type="text/css"> </head> <body bgcolor="C9DFF5"> <p>Вставьте содержимое</p> <form action=index.php?a=in method=post> <textarea class= style="width: 99%;" name="parser" cols="40" rows="5"></textarea> <br><input type=submit class=input_b value=Анализ></form>
Иными словами отсортировать элементы массива $strArr по возрастанию\убыванию цифр которые находятся в первых квадратных скобках каждой строки в переменной $mass