Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 146
1

Как выбрать элемент 1 уровня многомерного массива по значениям 2 уровня?

15.10.2015, 13:44. Показов 2209. Ответов 8
Метки нет (Все метки)

Доброе время суток. Есть массив фруктов, у каждого элемента есть название и цена.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$arr = array(
    array(
        'name' => 'banana', 
        'price' => '15'
    ), 
    array(
        'name' => 'apple', 
        'price' => '10'
    ), 
    array(
        'name' => 'orange', 
        'price' => '20'
    )
);
Как получить цену по названию? кроме перебора?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2015, 13:44
Ответы с готовыми решениями:

Как отсортировать элементы 1 уровня многомерного массива по значениям 2 уровня?
Доброе время суток. Есть массив фруктов, у каждого элемента есть название и цена. $arr = array(...

Как найти элемент 1 уровня многомерного массива по значению его элемента 2 уровня?
Есть многомерный массив типа такого: Array ( => Array ( => Алексей ...

Как получить ключи всех элементов определённого уровня ассоциативного многомерного массива?
Например, массив: Array( город1 => Array( склад1 => Array( яблоки => 45; бананы =>...

Однозначное отделение (классификация) оборудования уровня ядра/аггрегации от уровня доступа
Всем привет. Возник такой вопрос: можно ли по функциям или по железу понять уровень железки...

8
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 83
15.10.2015, 14:22 2
Наверно так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$arr = array(
   'banana' => array(
                'name' => 'banana', 
                'price' => '15'
    ), 
    'apple' => array(
        'name' => 'apple', 
        'price' => '10'
    ), 
    'orange' => array(
        'name' => 'orange', 
        'price' => '20'
    )
);
    echo $arr['apple']['price'];
0
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 146
15.10.2015, 14:30  [ТС] 3
а если есть много свойств у фрукта?
PHP
1
2
3
4
5
6
   'banana' => array(
                'name' => 'banana', 
                'price' => '15'
                'color' => 'yellow'
                'country' => 'ecuador'
    ),
и мне надо найти значение 'country' по значению 'color' или вообще любое значение 2 уровня по другому значению.
0
Эксперт PHP
3600 / 3014 / 1264
Регистрация: 01.08.2012
Сообщений: 10,316
15.10.2015, 15:03 4
PHP
1
2
$fruit = 'banana';
echo $array[$fruit]['country'];
0
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 146
15.10.2015, 15:11  [ТС] 5
Цитата Сообщение от Jodah Посмотреть сообщение
1
2
$fruit = 'banana';
echo $array[$fruit]['country'];
тут элемент выбирается по ключу в массиве, а я хочу по значению эл-та 2 уровня. Выбрать country там где color=yellow, когда name неизвестно
0
29 / 29 / 14
Регистрация: 23.10.2014
Сообщений: 79
15.10.2015, 15:11 6
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$arr = array(
    array(
        'name' => 'banana', 
        'price' => '15',
        'color' => 'yellow',
        'country' => 'ecuador'
    ), 
    array(
        'name' => 'apple', 
        'price' => '10',
        'color' => 'green',
        'country' => 'polen'
    ), 
    array(
        'name' => 'orange', 
        'price' => '20',
        'color' => 'orange',
        'country' => 'ecuador'
    )
);
 
$key = array_search('green', array_column($arr, 'color'));
 
var_dump($arr[$key]['country']);
1
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 146
15.10.2015, 16:54  [ТС] 7
array_column работает только в php 5.5. а в более ранних версиях есть аналог?
0
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 83
15.10.2015, 18:27 8
Цитата Сообщение от autumn Посмотреть сообщение
$key = array_search('green', array_column($arr, 'color'));
Просто интересно...Почему array_search, а не in_array?
0
29 / 29 / 14
Регистрация: 23.10.2014
Сообщений: 79
15.10.2015, 22:26 9
Лучший ответ Сообщение было отмечено kOROED как решение

Решение

аналог в более ранних версиях - может, это подойдет? https://gist.github.com/noganno/6415507
не in_array() потому, что ключ ведь получить нужно, а не проверить наличие элемента
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2015, 22:26

Перенаправление с домена третьего уровня на домен второго уровня
Здравствуйте. Возможно ли с помощью htaccess перенаправлять адреса от домена третьего уровня, на...

Написать программу замены элементов списков первого уровня на элементы списка самого низкого уровня в цикл
Пажалуйста помогите с задачкой Пример: (((a)) (b) (((c) e)) (((d)))) -> ((c) (d) (c) (d))

Переместить сайт с домена 3 уровня на 2-го уровня
Сайт с тысячью страниц в индексе за счет естественных ссылок набрал тИЦ 40 и PR4. Можно бы...

Осциллографы начального уровня (помогите выбрать, плиз)
День добрый! Давно я не брал в руки шашек паяльник. Хочется прикупить ненавороченный бюджетный...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.