PHP: <? $text = "<home><c=1>Строка1 <x=1><y=1><end><home><c=2>Строка2 <x=2><y=3><end><home><c=3>Строка3 <x=3><y=60><end><home><c=4>Строка8<x=4><y=10><end>"; Как можно отсортировать строки (с <home> до <end>) по значению "y" ? Посоветовали создать массив preg_match_all("#\<home>(.+?)\<end>#s",$text,$d); и потом уже что-то делать с ним. Подскажите, что здесь можно придумать?
И как его сделать? Это генерит массив от <home> до <end> preg_match_all("#\<home>(.+?)\<end>#s",$text,$d);
Ключевое значение где? Если у тебя есть уже многомерный массив, то в зависимости от его структуры для сортировки можно воспользоваться http://php.net/usort http://php.net/array_multisort
Сейчас с помощью Код (Text): preg_match_all("#\<home>(.+?)\<end>#s",$text,$arr); сгенерился массив Код (Text): $arr = array("<home><c=1>Строка1<x=1><y=1><end>", "<home><c=2>Строка2 <x=2><y=3><end>", "<home><c=3>Строка3 <x=3><y=60><end>", "<home><c=4>Строка8<x=4><y=10><end>"); Как теперь сделать, чтобы отсортировать по y ?
Парень, это не многомерный массив. Но и его ты можешь посортировать по y, если сумеешь выцепить значение y регуляркой у отдельного элемента.
-Vladimir- Ты не спрашивай так или не так. Сделал - запустил - посмотрел результат. Если то что ты ожидаешь, то делаешь дальше. Если не "то", то разбираешься почему.
Это понятное дело. Сгенерил многомерный массив: PHP: <? $content = "<home><c=1>Строка1 <x=1><y=10><end><home><c=2>Строка2 <x=2><y=0><end><home><c=3>Строка3 <x=3><y=0><end><home><c=4>Строка4 <x=4><y=8><end><home><c=5>Строка5 <x=5><y=0><end><home><c=6>Строка6 <x=6><y=0><end><home><c=7>Строка7 <x=7><y=7><end><home><c=8>Строка8<x=8><y=4><end>"; $content=preg_replace("/<home><c=([0-9]+)>/", '"[home]', $content); $content=preg_replace("/<x=([0-9]+)><y=/", '[end]" => "', $content); $content=preg_replace("><end>", '", ', $content); $content=preg_replace("/, >/", ', ', $content); $content=preg_replace('/>"/', '"', $content); $content2.=$content; $content2.="777"; $content=preg_replace('/, 777/', "", $content2); //echo $content; $arr = array($content); ?> Результат: Код (Text): "[home]Строка1 [end]" => "10", "[home]Строка2 [end]" => "0", "[home]Строка3 [end]" => "0", "[home]Строка4 [end]" => "8", "[home]Строка5 [end]" => "0", "[home]Строка6 [end]" => "0", "[home]Строка7 [end]" => "7", "[home]Строка8[end]" => "4" что тут можно придумать для сортировки по => "..." ?[/code]
PHP: <? $arr = array("[home]Строка1 [end]"=>10, "[home]Строка2 [end]"=>0, "[home]Строка3 [end]"=>0, "[home]Строка4 [end]"=>8, "[home]Строка5 [end]"=>0, "[home]Строка6 [end]"=>0, "[home]Строка7 [end]"=>7, "[home]Строка8[end]"=>4); arsort($arr); foreach($arr as $v=>$k) echo "$v=>$k "; ?> Как теперь всё это в переменную обратить?
PHP: <? $content = '"[home]Строка1 [end]"=>10, "[home]Строка2 [end]"=>0, "[home]Строка3 [end]"=>0, "[home]Строка4 [end]"=>8, "[home]Строка5 [end]"=>0, "[home]Строка6 [end]"=>0, "[home]Строка7 [end]"=>7, "[home]Строка8[end]"=>4', $arr = array($content); arsort($arr); foreach($arr as $v=>$k) echo "$v=>$k "; ?> И что-то типа такого $arr = array($content); как можно сделать? Этот код не работает.