Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для avens
0 / 0 / 2
Регистрация: 07.01.2015
Сообщений: 79

Получить элементы первого массива ключи которых есть во втором массиве

10.04.2020, 13:51. Показов 839. Ответов 4

Студворк — интернет-сервис помощи студентам
Есть ли возможность на PHP получить элементы первого массива ключи которых есть в наличии во втором массиве, так что бы сделать это проще, без цикла?

Пример:
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
25
26
27
28
29
30
31
32
// Первый главный массив
$array_main = array(
    'key_1' => 111,
    'key_2' => 222,
    'key_3' => 333,
    'key_4' => 444,
    'key_5' => 555
);
// Второй массив с ключами
$array_keys = array(
    'key_1',
    'key_3',
    'key_5'
);
 
// В результате должно быть
$array_result = array(
    'key_1' => 111,
    'key_3' => 333,
    'key_5' => 555
);
 
// Циклом это можно сделать так
foreach( $array_keys as $key ) {
    if ( array_key_exists($key, $array_main) ) {
        $array_result[$key] = $array_main[$key];
    }
}
 
echo '<pre>';
print_r( $array_result );
echo '</pre>';
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2020, 13:51
Ответы с готовыми решениями:

Вывести элементы первого массива, которых нет во втором массиве
Даны два массива чисел. Требуется вывести элементы первого массива (в том порядке, в каком они идут в первом массиве), которых нет во...

Вывести в выходной файл те элементы первого массива, которых нет во втором массиве
даны дВа массиВа чисел. требуется ВыВести В Выходной файл те элементы перВого массиВа (В том порядке, В каком они идут В перВом массиВе),...

Объединить два массива так, чтобы в результирующем массиве содержались без повторений все элементы первого массива, которых нет во втором
Нужно написать программу, которая объединяет два одномерных массива таким образом, чтобы в результирующем массиве содержались без...

4
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
10.04.2020, 14:09
avens,
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Первый главный массив
$array_main = array(
    'key_1' => 111,
    'key_2' => 222,
    'key_3' => 333,
    'key_4' => 444,
    'key_5' => 555
);
// Второй массив с ключами
$array_keys = array(
    'key_1',
    'key_3',
    'key_5'
);
 
$array_result = array_flip(array_intersect(array_flip($array_main), $array_keys));
 
print_r($array_result);
Только это будет хуже вашего одного цикла, т.к. каждая функция по работе с массивом, запускает цикл.
1
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
10.04.2020, 15:21
Цитата Сообщение от Строитель Посмотреть сообщение
Только это будет хуже
В дополнение: если в $array_main будут повторяющиеся значения, то данный код может привести к некорректному результату.

Добавлено через 2 минуты
PHP
1
$array_result = array_intersect_key($array_main, array_flip($array_keys));
3
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
10.04.2020, 15:23
Kerry_Jr, совершенно верно )
1
Заблокирован
10.04.2020, 16:04
Цитата Сообщение от avens Посмотреть сообщение
echo '<pre>';
print_r( $array_result );
echo '</pre>';
PHP
1
echo '<pre>' . print_r($array_result, true) . '</pre>';// чтобы сто раз не писать echo
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2020, 16:04
Помогаю со студенческими работами здесь

Создать 2 одномерных массива разного размера. Найти элементы, которые есть во втором массиве, но которых нет в первом
const n=6; m=5; var A:array of integer; B:array of integer; i,j: integer; Begin randomize; for i:=1 to n do ...

Найти элементы, которые есть в первом массиве, и которых нет во втором массиве.
1. Даны два одномерных массива из целых чисел. Найти элементы, которые есть в первом массиве, и которых нет во втором массиве. 2. Дан...

Найти элементы, которые есть в первом массиве, и которых нет во втором массиве
Даны два одномерных массива из целых чисел. Найти элементы, которые есть в первом массиве, и которых нет во втором массиве. var ...

Найти элементы, которые есть в первом массиве, и которых нет во втором массиве
Даны два одномерных массива из целых чисел. Найти элементы, которые есть в первом массиве, и которых нет во втором массиве.

Элементы первого массива, которых нет во втором
Помогите решить задачу: Даны два массива различных размеров A(N) и В(М), где N&lt;&gt;M. Определите все элементы первого массива, которых нет...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru