Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2016, 11:15   #1
ATF
 
Регистрация: 08.05.2016
Сообщений: 6
По умолчанию Как сделать выборку из массива?

Есть следующий массив:

PHP код:
Array
(
    [
0] => Array
        (
            [
0] => 12
            
[1] => Петя
        
)

    [
1] => Array
        (
            [
0] => 3
            
[1] => Сергей
        
)

    [
2] => Array
        (
            [
0] => 33
            
[1] => Оксана
        
)
    [
3] => Array
        (
            [
0] => 3
            
[1] => Петя
        
)

    [
4] => Array
        (
            [
0] => 10
            
[1] => Сергей
        
)

    [
5] => Array
        (
            [
0] => 52
            
[1] => Петя
        
)
    [
6] => Array
        (
            [
0] => 17
            
[1] => Люда
        
)

    [
7] => Array
        (
            [
0] => 24
            
[1] => Сергей
        
)

    [
8] => Array
        (
            [
0] => 8
            
[1] => Надя
        
)


Как вы видите, имена повторяются, но второй элемент массива (цифра - возраст) с повторяющимися именами всегда разный.
Подскажите как удалить из массива ненужные элементы, так, чтоб имена не повторялись, а из тех что повторялись, осталось Имя с максимальным возрастом. Примерно так:

PHP код:
Array
(

    [
2] => Array
        (
            [
0] => 33
            
[1] => Оксана
        
)
    [
5] => Array
        (
            [
0] => 52
            
[1] => Петя
        
)
    [
6] => Array
        (
            [
0] => 17
            
[1] => Люда
        
)

    [
7] => Array
        (
            [
0] => 24
            
[1] => Сергей
        
)

    [
8] => Array
        (
            [
0] => 8
            
[1] => Надя
        
)


ATF вне форума Ответить с цитированием
Старый 15.06.2016, 11:59   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Точно нужно из исходного массива удалить лишнее?

или, может быть, устроит такой результат?
Код:
Array
(
    [Петя] => 52
    [Сергей] => 24
    [Оксана] => 33
    [Люда] => 17
    [Надя] => 8
)
это получено так:
Код:
$b=[];
foreach ($a as $value) {
    $name=$value[1];
    if(isset($b[$name])){
        if((int)$b[$name]<(int)$value[0]) {
            $b[$name]=$value[0];
        }
    }
    else {
        $b[$name]=$value[0];
    }
}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2016, 17:41   #3
ATF
 
Регистрация: 08.05.2016
Сообщений: 6
По умолчанию

Cупер! Огромное спасибо!
ATF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать выборку из таблицы по двум значениям? RumOleg Microsoft Office Excel 14 07.09.2015 14:50
Как сделать такую выборку и разобрать ее на php Illusiony PHP 14 02.05.2015 21:30
Как сделать выборку из БД по годам Leems Помощь студентам 0 12.07.2012 14:35
Как сделать выборку по временному интервалу в MySql? victorshkoda БД в Delphi 2 05.02.2012 20:02
Как правильно сделать выборку Minotavr_x86 БД в Delphi 9 04.03.2009 19:56