Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 1
Регистрация: 03.02.2014
Сообщений: 281

Сверить и соединить массивы

29.03.2016, 16:17. Показов 1637. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1-ый массив:
PHP
1
2
3
4
5
6
7
array(
"18.02" => "0",
"19.02" => "0",
"20.02" => "0",
"21.02" => "0",
"22.02" => "0",
)
2-ой массив:
PHP
1
2
3
4
array(
"18.02" => "6",
"22.02" => "3",
)
Нужно составить такой массив, соединив эти:
PHP
1
2
3
4
5
6
7
array(
"18.02" => "6",
"19.02" => "0",
"20.02" => "0",
"21.02" => "0",
"22.02" => "3",
)
Т.е. сверить наличие ключа и если он есть во втором массиве - подставить к нему его значение.
Как это можно сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2016, 16:17
Ответы с готовыми решениями:

Как сверить 2 массивы и удалить одинаковые значения?
Предположим есть массив есть массив $a = и есть второй массив $b = Как из массива b удалить те же жлементы из массива a То...

Как сверить массивы?
Существует два массива. Один приравнивается другому. Потом с первым проводим манипуляции и пытаемся проверить - изменился ли массив? но...

Упорядочить массивы по по убыванию, потом соединить массивы в один упорядоченный массив
Начала писать, запуталась Даны два одномерных массива состоящие из 10 целых чисел. Упорядочить массивы по по убыванию, потом соединить...

14
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
29.03.2016, 16:31
Лучший ответ Сообщение было отмечено Kerry_Jr как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    $arr1 = array(
                    "18.02" => "0",
                    "19.02" => "0",
                    "20.02" => "0",
                    "21.02" => "0",
                    "22.02" => "0",
                    );
       $arr2 = array(
                    "18.02" => "6",
                    "22.02" => "3",
                 );
    $a = array_intersect_key($arr2,$arr1);
        foreach($a as $k=>$v){
            $arr1[$k] = $v;
        }
        print_r($arr1);
2
Hello Kitty
 Аватар для WhiteMind
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
29.03.2016, 16:35
Лучший ответ Сообщение было отмечено Kerry_Jr как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
$a1 = array(
"18.02" => "0",
"19.02" => "0",
"20.02" => "0",
"21.02" => "0",
"22.02" => "0",
);
$a2 = array(
"18.02" => "6",
"22.02" => "3",
);
 
$a3 = array_merge($a1 , $a2);
 
 
print_r ( $a3 );
Добавлено через 14 секунд
http://sandbox.onlinephpfuncti... 531c75a97d

Добавлено через 2 минуты
Цитата Сообщение от Trances Посмотреть сообщение
Т.е. сверить наличие ключа и если он есть во втором массиве - подставить к нему его значение.
хм. тогда вариант предложенный Azdeman,
2
1 / 1 / 1
Регистрация: 03.02.2014
Сообщений: 281
29.03.2016, 16:46  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$arr1 = array(
"18.02" => "0",
"19.02" => "0",
"20.02" => "0",
"21.02" => "0",
"22.02" => "0",
);
 
$arr2 = array(
"18.02" => "6",
"22.02" => "3",
);
 
foreach( $arr1 as $A => $Value ){
    if( array_key_exists( $A, $arr2) ){
        unset($arr1[$A]);
    }
}
 
$Arr = $arr1+ $arr2;
Пришел к такому варианту
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
29.03.2016, 21:11
Цитата Сообщение от Trances Посмотреть сообщение
if( array_key_exists( $A, $arr2) ){
на
PHP
1
if (isset($arr2{$A})) {}
0
Hello Kitty
 Аватар для WhiteMind
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
30.03.2016, 00:01
Цитата Сообщение от полудух Посмотреть сообщение
на
PHPВыделить код
1
if (isset($arr2{$A})) {}
а зачем?
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
30.03.2016, 00:14
Цитата Сообщение от WhiteMind Посмотреть сообщение
а зачем?
потому что она самая быстрая из всех
0
Hello Kitty
 Аватар для WhiteMind
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
30.03.2016, 00:42
Цитата Сообщение от полудух Посмотреть сообщение
потому что она самая быстрая
на сколько я понял автор явно не указал тип значений массива, isset не array_key_exists

Добавлено через 29 секунд
isset не array_intersect_key
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
30.03.2016, 09:42
он указал key=>value, это всё что нужно
foreach( $arr1 as $A => $Value ){
0
Hello Kitty
 Аватар для WhiteMind
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
30.03.2016, 12:19
Цитата Сообщение от полудух Посмотреть сообщение
он указал key=>value, это всё что нужно
нет не все. ведь
Цитата Сообщение от WhiteMind Посмотреть сообщение
на сколько я понял автор явно не указал тип значений массива
Добавлено через 1 минуту
Зато явно указано:
Цитата Сообщение от Trances Посмотреть сообщение
Т.е. сверить наличие ключа и если он есть во втором массиве - подставить к нему его значение.
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
30.03.2016, 12:20
Цитата Сообщение от WhiteMind Посмотреть сообщение
Т.е. сверить наличие ключа и если он есть во втором массиве - подставить к нему его значение.
Ну я думаю мой вариант норм подходит.
0
Hello Kitty
 Аватар для WhiteMind
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
30.03.2016, 12:31
Цитата Сообщение от Azdeman Посмотреть сообщение
Ну я думаю мой вариант норм подходит.
думаю да.
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
30.03.2016, 21:57
Цитата Сообщение от WhiteMind Посмотреть сообщение
на сколько я понял автор явно не указал тип значений массива
и что?
мы не в C, чтобы тут типы роляли
isset() ловит наличие и далее работает условие, что непонятно то?
0
Hello Kitty
 Аватар для WhiteMind
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
31.03.2016, 06:13
Цитата Сообщение от полудух Посмотреть сообщение
мы не в C, чтобы тут типы роляли
именно что не С
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
 
// e 1
function Init( $a1 , $a2 ) {
    $GLOBALS[$a1] = array(
        "18.02" => "0",
        "19.02" => "0",
        "20.02" => "0",
        "21.02" => "0",
        "22.02" => "0",
    );
    $GLOBALS[$a2] = array(
        "18.02" => "6",
        "22.02" => null,
    );
}
 
Init( 'arr1' , 'arr2' );
$a = array_intersect_key($arr2,$arr1);
foreach($a as $k=>$v){
    $arr1[$k] = $v;
}
print_r($arr1);
 
// e 2
 
Init( 'arr1' , 'arr2' );
foreach( $arr1 as $A => $Value ){
    if( array_key_exists( $A, $arr2) ){
        unset($arr1[$A]);
    }
}
 
$Arr = $arr1+ $arr2;
 
print_r( $Arr );
 
 
// e 3
 
Init( 'arr1' , 'arr2' );
foreach( $arr1 as $A => $Value ){
    if( isset( $arr2[ $A ] ) ) {
        unset($arr1[$A]);
    }
}
 
$Arr = $arr1+ $arr2;
 
print_r( $Arr );
Добавлено через 16 секунд
http://sandbox.onlinephpfuncti... 157aa787d2
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
31.03.2016, 08:59
ну блин, об этом вообще-то в документации сказано:
isset — Определяет, была ли установлена переменная значением отличным от NULL
так что вот как раз на null она и не реагирует
это норма (с)
у меня в массиве ещё ни разу не было null, но я учту )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.03.2016, 08:59
Помогаю со студенческими работами здесь

Соединить массивы произвольно вставляя элементы 1 во 2
Может кто нибудь идею подкинуть как соединить 2 массива , с произвольной вставкой элементов в первый? Пытался так # include...

Сверить часы с интернетом
Здравствуйте. Мне нужно узнавать точное время, а для этого нужно связываться с неким источником, которое мне это время сообщит. Я...

Нужно сверить 2 файла
Возможно ли это реализовать через BAT ? Есть 2 txt файла в первом файле строки такого вида: https://www.yandex.ru/ ...

Требуется сверить дату
procedure TForm2.FormCreate(Sender: TObject); begin DateTimePicker1.Date:=now; DecodeDate(myDate,myyear,myMonth,myday); if...

Сверить два списка
Помогите... Как найти значение &quot;Новом списке&quot; которое не встречается в &quot;Старом списке&quot;? или Как проверить на остуствии в...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru