Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 615
1

Сравнение массивов

09.10.2015, 21:16. Показов 783. Ответов 5
Метки нет (Все метки)

Есть два массива.
первый содержит данные.
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
$data_array = Array
(
    [USD] => Array
        (
            [0] => 1
            [1] => ""
            [2] => up
            [3] => 1.000
        )
 
    [EUR] => Array
        (
            [0] => 1
            [1] => ""
            [2] => up
            [3] => 1.000
        )
 
    [AUD] => Array
        (
            [0] => 1
            [1] => ""
            [2] => up
            [3] => 1.000
        )
 
    [ARS] => Array
        (
            [0] => 1
            [1] => ""
            [2] => up
            [3] => 1.000
        ) ...
второй содержит список избранных ключей
PHP
1
2
3
4
5
6
7
$selected_array = Array
(
    [0] => USD
    [1] => EUR
    [2] => GBP
    [3] => RUB
)
Из этого необходимо создать массив первого типа который содержит только выбранные типы данных и не содержит остальные.

Для начала делаю так :
$selected_reverse = array_flip($selected_array);

После чего второй массив имеет вид :
PHP
1
2
3
4
5
6
7
$selected_reverse = Array
(
    [USD] => 0
    [EUR] => 1
    [GBP] => 2
    [RUB] => 3
)
после чего сравниваю два массива :
PHP
1
$selected_array = array_uintersect_uassoc($data_array, $selected_reverse, "strcasecmp", "strcasecmp");
На хостинге это работает, а на локальном выдает ошибку :

HTML5
1
Warning: strcasecmp() expects parameter 1 to be string, array given in Z:\home\localhost\www\......\index.php on line 79
Как это исправить?
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2015, 21:16
Ответы с готовыми решениями:

Сравнение массивов
Всем привет. Имею: 1. $array_1(=>Худой=>Нормальный=>Толстый); 2.$array_2 (=>0=>1); 3.$num =...

Сравнение массивов
У меня есть 2 массива, которые берут данные с базы данных MySQL. В обоих массивах есть одинаковые...

Сравнение 2х массивов
Всем привет, возникла проблема при сравнение 2х массивов, при чем разница не только в значениях, но...

Сравнение нескольких массивов
Здравствуйте! Помогите с выполнением такой задачи: на вход поступает несколько файлов (минимум 2),...

5
Эксперт PHP
3577 / 2995 / 1260
Регистрация: 01.08.2012
Сообщений: 10,259
09.10.2015, 21:24 2
Цитата Сообщение от ICEBERG@ Посмотреть сообщение
parameter 1 to be string, array given
Все же очевидно.
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 615
10.10.2015, 10:09  [ТС] 3
Так он и есть string.
0
Эксперт PHP
3577 / 2995 / 1260
Регистрация: 01.08.2012
Сообщений: 10,259
10.10.2015, 10:30 4
ICEBERG@, PHP видней.
0
596 / 463 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
10.10.2015, 10:46 5
ICEBERG@, у вас в $data_array вложенные массивы, strcasecmp принимает только string на входе, а ему передается элемент массива . отсюда и возникает array to string conversion.
сделайте вручную и не парьтесь. не ищите отдельную функцию, потому что вы изначально задачу немного неправильно сформулировали. если я вас правильно понял, вам нужно это:
PHP
1
2
3
4
$result = array();
foreach ($selected_array as $key) {
  $result[$key] = $data_array[$key];
}
1
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 615
10.10.2015, 20:24  [ТС] 6
Очень жаль
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2015, 20:24

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Сравнение ассоциативных массивов
Есть 2 ассоциативных массива: Array1 ( => value1 => value2 => value31 ...

Сравнение двух массивов
есть два массива: $irregular_verbs_second = array(0 => 'was', 1 => 'beat',); $r = array(0 =>...

Сравнение двух массивов
Здравствуйте, как сравнить 2 вот таких, к примеру массива и узнать они идентичны или нет? ...

Сравнение двух массивов
Появилась необходимость сравнить значения двух массивов. Я в курсе о таких штуках, которые...


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

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

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