8 / 8 / 1
Регистрация: 24.10.2013
Сообщений: 205
1

Многомерный ассоциативный массив

20.04.2015, 13:54. Показов 3356. Ответов 5
Метки нет (Все метки)

Помогите, пожалуйста, исправить ошибки в коде. Создать ассоциативный многомерный массив, который содержит информацию о работниках(имя, возраст, стаж работы) и вывести всю информацию, начиная с работников с самым большим стажем.
Вот что у меня получилось:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$data=array(
    array('name'=>'Petrov', 'vozrast'=>'45', 'stazh'=>20),
    array('name'=>'Sidorov', 'vozrast'=>'36', 'stazh'=>10),
    array('name'=>'Ivanov', 'vozrast'=>'47', 'stazh'=>25),
    array('name'=>'Petrenko', 'vozrast'=>'30', 'stazh'=>7),
    array('name'=>'Nikolaev', 'vozrast'=>'31', 'stazh'=>9),
    );
$data_stazh=array();
foreach($data as $key=>$arr){
    $data_stazh[$key]=$arr['stazh'];
}
 
for($i=0; $i<10; $i++){
    $data_tmp=$data;
    array_multisort($data_stazh, SORT_NUMERIC, $data_tmp,SORT_DESC);
}
var_dump($data);
?>
Что нужно изменить, чтобы сортировка производилась по убыванию?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2015, 13:54
Ответы с готовыми решениями:

Ассоциативный массив ( многомерный )
Ребята есть такой код class Tweet { private $name,$family,$age,$city,$job; ...

Многомерный ассоциативный массив
Создайте ассоциативный массив, содержащий информацию о пользователях (ФИО, возраст, количество...

Многомерный ассоциативный массив
Многомерный ассоциативный массив с данными, каждый элемент должен содержать в себе Марку...

PHP. Многомерный ассоциативный массив
Друзья! Дан многомерный ассоциативный массив (представлен ниже), необходимо произвести сортировку...

5
Эксперт PHP
5735 / 4122 / 1500
Регистрация: 06.01.2011
Сообщений: 11,252
20.04.2015, 14:05 2
Цитата Сообщение от Евдокия Посмотреть сообщение
Что нужно изменить, чтобы сортировка производилась по убыванию?
Вот:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$data = array(
        array('name'=>'Petrov', 'vozrast'=>'45', 'stazh'=>20),
        array('name'=>'Sidorov', 'vozrast'=>'36', 'stazh'=>10),
        array('name'=>'Ivanov', 'vozrast'=>'47', 'stazh'=>25),
        array('name'=>'Petrenko', 'vozrast'=>'30', 'stazh'=>7),
        array('name'=>'Nikolaev', 'vozrast'=>'31', 'stazh'=>9),
    );
    
    usort($data, function($a,$b){
        return 
            $a['stazh'] > $b['stazh'] ? -1 : ($a['stazh'] == $b['stazh'] ? 0 : 1);
    });
    
    var_dump($data);
1
8 / 8 / 1
Регистрация: 24.10.2013
Сообщений: 205
20.04.2015, 14:20  [ТС] 3
Спасибо большое! Еще такой вопрос: Как вывести эту информацию в нормальном виде(например, в виде таблицы)? Это возможно сделать?
0
Эксперт PHP
5735 / 4122 / 1500
Регистрация: 06.01.2011
Сообщений: 11,252
20.04.2015, 14:36 4
Лучший ответ Сообщение было отмечено Евдокия как решение

Решение

Да, конечно. Вот:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
    $data = array(
        array('name'=>'Petrov',   'age'=>45, 'experience'=>20),
        array('name'=>'Sidorov',  'age'=>36, 'experience'=>10),
        array('name'=>'Ivanov',   'age'=>47, 'experience'=>25),
        array('name'=>'Petrenko', 'age'=>30, 'experience'=>7),
        array('name'=>'Nikolaev', 'age'=>31, 'experience'=>9),
    );
    
    usort($data, function($a,$b){
        return 
            $a['experience'] > $b['experience'] ? -1 : ($a['experience'] == $b['experience'] ? 0 : 1);
    });
?>
<table border="1">
    <tr>
        <td>Имя</td>
        <td>Возраст</td>
        <td>Cтаж</td>
    </tr>
    <?php foreach($data as $element):?>
    <tr>
        <td><?=$element['name']?></td>
        <td><?=$element['age']?></td>
        <td><?=$element['experience']?></td>
    </tr>
    <?php endforeach;?>
</table>
1
8 / 8 / 1
Регистрация: 24.10.2013
Сообщений: 205
20.04.2015, 19:37  [ТС] 5
Таблицу можно сделать только за пределами кода РНР? С помощью echo не получится?
0
Эксперт PHP
5735 / 4122 / 1500
Регистрация: 06.01.2011
Сообщений: 11,252
20.04.2015, 19:42 6
Евдокия, получится. Но так же красивее .
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2015, 19:42
Помогаю со студенческими работами здесь

Многомерный ассоциативный массив - PHP
Уважаемые программисты! Пожалуйста, помогите решить данную задачу. Есть массивы $country =...

Добавление массива в многомерный массив (не элемента в многомерный массив)
Доброго времени суток уважаемые форумчане! Столкнулся с такой проблемой: требуется в многомерный...

Нужно преобразовать массив ассоциативных массивов в единый ассоциативный массив, а у меня никак не получается
Как преобразовать массив на скрине так, чтобы получился массив: =&gt; FB =&gt; FREE При этом...

Ассоциативный массив
Всем привет есть ассоциативный массив $monthes =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru