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

Массив: Сравнить 2 массива, так чтобы элементы были одинаковыми(не обязательно в том же порядке).

26.10.2013, 23:47. Показов 1473. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно сравнить 2 массива, так чтобы элементы были одинаковыми(не обязательно в том же порядке). Подскажите плз почему не работает?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
               $asd=array();
               array_push($asd,"шляпа");
               array_push($asd,"ведро");
               array_push($asd,"ведро");
               array_push($asd,"машин");
               print_r($asd);
               $zxc=array();
               array_push($zxc,"ведро");
               array_push($zxc,"шляпа");
               array_push($zxc,"ведро");
               array_push($zxc,"машин");
               print_r($zxc);
               if($zxc == $asd)
               echo 'ok';
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.10.2013, 23:47
Ответы с готовыми решениями:

Изменить заданный числовой массив так, чтобы элементы были расположены в нем в обратном порядке
Доброго времени суток. Изменить заданный числовой массив так, чтобы элементы были расположены в нем в обратном порядке. Задача...

Переделать число так, чтобы сперва в том же порядке были его чётные цифры, а потом нечётные.
Вот текст задачи: Дано многозначное число N, надо переделать его так, чтобы сперва в том же порядке были его чётные цифры, а потом...

Сформировать новый массив С так, чтобы в нем элементы массива А были упорядочены по возрастанию по столбцам
сформировать новый массив С так, чтобы в нем элементы массива А были упорядочены по возрастанию по столбцам...

8
 Аватар для JxF-TEAM
122 / 122 / 27
Регистрация: 22.10.2013
Сообщений: 425
27.10.2013, 00:09
Цитата Сообщение от koc94ok Посмотреть сообщение
Нужно сравнить 2 массива, так чтобы элементы были одинаковыми(не обязательно в том же порядке). Подскажите плз почему не работает?
PHP
1
   array_push
такая функция существует...

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$asd=array();
 
array_push($asd,"шляпа");
array_push($asd,"ведро");
array_push($asd,"ведро");
array_push($asd,"машин");
 
print_r($asd);
 
 
$zxc=array();
 
array_push($zxc,"ведро");
array_push($zxc,"шляпа");
array_push($zxc,"ведро");
array_push($zxc,"машин");
 
print_r($zxc);
 
 
echo ( array_diff ( $asd, $zxc ) === Array () ) ? "OK" : "BAD ARRAY";
0
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 658
27.10.2013, 01:11  [ТС]
Цитата Сообщение от JxF-TEAM Посмотреть сообщение
такая функция существует...

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$asd=array();
 
array_push($asd,"шляпа");
array_push($asd,"ведро");
array_push($asd,"ведро");
array_push($asd,"машин");
 
print_r($asd);
 
 
$zxc=array();
 
array_push($zxc,"ведро");
array_push($zxc,"шляпа");
array_push($zxc,"ведро");
array_push($zxc,"машин");
 
print_r($zxc);
 
 
echo ( array_diff ( $asd, $zxc ) === Array () ) ? "OK" : "BAD ARRAY";
Добавил букву "a" во второй массив в слово ведро, все равно OK пишет, хотя должен bad array
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$asd=array();
 
array_push($asd,"шляпа");
array_push($asd,"ведро");
array_push($asd,"ведро");
array_push($asd,"машин");
 
print_r($asd);
 
 
$zxc=array();
 
array_push($zxc,"веaдро");
array_push($zxc,"шляпа");
array_push($zxc,"ведро");
array_push($zxc,"машин");
 
print_r($zxc);
 
 
echo ( array_diff ( $asd, $zxc ) === Array () ) ? "OK" : "BAD ARRAY";
0
 Аватар для JxF-TEAM
122 / 122 / 27
Регистрация: 22.10.2013
Сообщений: 425
27.10.2013, 01:32
неработает...
http://us3.php.net/manual/ru/ref.array.php
посмотрите тут

http://us3.php.net/manual/ru/f... y-diff.php

значет я не прально описание к ней понял...
0
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 658
27.10.2013, 02:07  [ТС]
Нужно чтобы КАЖДОМУ элементу первого массива соответствовал ТАКОЙ ЖЕ элемент во втором массиве, порядок не обязателен.
0
Заблокирован
27.10.2013, 09:29
дубль

Добавлено через 2 минуты
балин. стерлось. Короче сливаете два массива и array_uniqie().
1
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 658
27.10.2013, 10:49  [ТС]
Цитата Сообщение от sqlnub Посмотреть сообщение
дубль

Добавлено через 2 минуты
балин. стерлось. Короче сливаете два массива и array_uniqie().
Нет, как же тогда повторяющиеся элементы? Их количество должно совпадать.
0
 Аватар для JxF-TEAM
122 / 122 / 27
Регистрация: 22.10.2013
Сообщений: 425
27.10.2013, 11:01
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
$asd=array();
 
array_push($asd,"шляпа");
array_push($asd,"ведро");
array_push($asd,"ведро");
array_push($asd,"машин");
/* 
print_r($asd);
*/ 
 
$zxc=array();
 
array_push($zxc,"ведро");
array_push($zxc,"шляпа");
array_push($zxc,"ведро");
array_push($zxc,"машин");
array_push($zxc,"машин");
/* 
print_r($zxc);
*/ 
 
function compareArray ( &$a1, &$a2 ) {
 
    $a_1 = array_unique ( $a1 );
 
    $a_2 = array_unique ( $a2 );
    
    if ( count ( $a_1 ) <> count ( $a_2 ) )
        return false;
 
    foreach ( $a_1 as $val )
        if ( !in_array ( $val, $a_2 ) )
            return false;
            
    return true;
 
}
 
echo ( compareArray ( $asd, $zxc ) ) ? "OK" : "BAD ARRAY";
долга правда.. но вроде оно

Добавлено через 2 минуты
Цитата Сообщение от koc94ok Посмотреть сообщение
Нужно чтобы КАЖДОМУ элементу первого массива соответствовал ТАКОЙ ЖЕ элемент во втором массиве, порядок не обязателен.
ааа как вы хотите их сравнивать?

если Array ("a", "b", "a" ) и Array ("a", "a", "b", ) должно выдавать true?


если Array ("a", "b", "a" ) и Array ("a", "a", "b","b", ) должно выдавать true?

или нет?

Добавлено через 8 минут
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
function compareArray ( &$a1, &$a2 ) {
 
    $a_1 = array_unique ( $a1 );
 
    $a_2 = array_unique ( $a2 );
    
    if ( count ( $a_1 ) <> count ( $a_2 ) )
        return false;
 
    foreach ( $a_1 as $val )
        if ( !in_array ( $val, $a_2 ) )
            return false;
            
    return true;
 
}
 
function compareArray2 ( &$a1, &$a2 ) {
    
    if ( count ( $a1 ) <> count ( $a2 ) )
        return false;
 
    foreach ( $a1 as $val )
        if ( count ( array_keys ( $a1, $val ) ) <> count ( array_keys ( $a2, $val ) ) )
            return false;
            
    return true;
 
}
 
 
echo ( compareArray ( $asd, $zxc ) ) ? "OK" : "BAD ARRAY";
 
echo "<BR/>";
        
echo ( compareArray2 ( $asd, $zxc ) ) ? "OK" : "BAD ARRAY";
вот 1-я проста сравнивает без учата скока в каком одинаковых во 2-й учитывается .. если 'ведро' в 1-м 2-а то и во 2-м массиве их 2-а должно быть
1
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 658
27.10.2013, 11:14  [ТС]
Цитата Сообщение от JxF-TEAM Посмотреть сообщение


ааа как вы хотите их сравнивать?

если Array ("a", "b", "a" ) и Array ("a", "a", "b", ) должно выдавать true?
Именно так
Спасибо, на первый взляд вторая ф-ция фурычит как надо...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2013, 11:14
Помогаю со студенческими работами здесь

Сформировать новый массив С так, чтобы в нем элементы массива А были упорядочены по возрастанию по строкам
Больше всего интересует ответ на 5 пункт. помогите, пожалуйста. Сгенерировать случайным образом массив А размера 10х10 (заполнить его...

Массив: как сделать так, чтобы рандомно выбирались только те элементы массива, которые не были выбраны раньше?
В общем, из массива рандомно выбирается элемент, как сделать так, чтобы выбирались только те, которые не были выбраны раньше? Можно это...

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

Переставить строки матрицы так чтобы их последнее элементы были в порядке невозрастания
Задача:Дана матрица порядка N.Переставить строки матрицы так чтобы их последнее элементы были в порядке невозрастания.Сортировка подсчетом....

Заданы два упорядоченных по возрастанию массива. Соединить их в один массив, так чтобы элементы были упорядоченны по возрастанию
Заданы два упорядоченных по возрастанию массива А и В, состоящих из N и M вещественных элементов соответственно. Соединить их в один массив...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru