Здравствуйте Уважаемые! Кто может, помогите пожалуйса... Допустим у меня есть масив, $array = array( 1=>"Адам", 2=>"Андрей", 3=>"Афанасий", 4=>"Алексей", 5=>"Владимер", 6=>"Виктор", 7=>"Николай", 8=>"Никита", 9=>"Денис", 10=>"Дмитрий", ); как вывести слова начинающиеся на А, В, Н и т.д. и загнать их в отдельный масив? Примерно так... А Адам Андрей Афанасий Алексей В Владимер Виктор Н Николай Никита Д Денис Дмитрий
PHP: <?php function SortNames($names) { $letters=array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я'); $result=array(); foreach ($names as $name) { $letter_id=array_search(strtoupper($name[0]),$letters) or die('Неизвестный первый символ'); $result[$letters[$letter_id]][]=$name; } return $result; } /* Тест */ $names=array('Вася','Петя','Коля'); print_r(SortNames($names)); ?>
К массиву $array PHP: $ch = ''; $res = array(); foreach ($array as $k=>$v) { if ($ch != $v[0]) $ch = $v[0]; $res[$ch][] = $v; } print_r($res);
Спасибо всем, кто откликнулся на мою прозьбу!!! Но дело в том, что мне над чтоб было без масива с буквами, чтоб выбиралась первая буква и слова начинающийся на эту букву заносились в новый масив
Так чтоли? PHP: <?php $array=array("Вася","Юра","Вова","Юлий"); foreach ($array as $v) { eval('isset($'.strtoupper($v[0]).') ? $'.strtoupper($v[0]).'[]="'.$v.'" : $'.strtoupper($v[0]).'=array("'.$v.'");'); } print_r($Ю); ?> А чем вложеные массивы не устраивают?
Sxtovets Распечатайте из примера Sergey89 print_r($result); и поймете, что можно получить все, что на А: $result['A']; а можно сделать array_keys($result) и получить все буквы 'A', 'В' и тд, а потом пробежаться по $result и собрать то что вы хотите и как хотите. думайте!
В общем мне надо из этого... PHP: $neme=array( 2=>'Андрей', 4=>'Алексей', 14=>'Антон', 23=>'Дмитрий', 25=>'Денис', 26=>'Петро', 29=>'Петя', 35=>'Петрович',); получить вот это... PHP: $neme=array( [А] => array ( 2=>'Андрей', 4=>'Алексей', 14=>'Антон', ) [Д] => array ( 23=>'Дмитрий', 25=>'Денис', ) [П] => array ( 26=>'Петро', 29=>'Петя', 35=>'Петрович', ) ) как это сделать не понимаю..... :cry:
PHP: <?php $result = array(); foreach ($array as $k => $v) { $result[$v[0]][$k] = $v; } а потом сортировка
Позвольте, примите мое уважение к вам, но вы тоже в чем то не очень хорошо разбираетсь, невозможно знать все и сразу, для этого и существует этот форум чтобы помогать друг другу...