[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сравнение двух многомерных массивов
Страницы: 1, 2
espltd
Все бодрого дня! Нужна помощь от всезнаек) Есть массив объектов такого вида:
Не могу и не понимаю как решить данную задачу: У меня на сайте 2 выпадающих списка, при выборе параметров идет аякс запрос по событию change и подгружается табличка на основе выбранных параметров. Данные селекты(вып.списки) - одинаковы! Суть такова, что мне надо сравнить совпадает ли поле первого с полем вторым, т.е. если в 1 объекте в массиве compl в поле [pole] содержится Б, и во втором тоже тогда ставим +, а если не содержиться, тогда -. Т.е. это сравнение. Надо сделать именно сравнение, чтобы получилось табличка: Но совершенно не понимаю как это правильно делают. Бьюсь уже 3-ий день, безрезультат! Помогите пожалуйста кто знает или умеет. Заранее, спасибо))

массив 1 массив 2
Подсветка + -
Подогрев - +
Линейка - -
Термостат + +


Array
(
[
0] => ComplectOption Object
(
[
'compl'] => Array
(
[
complectation_id] => 189
[title_group] => Дизайн
[title_option] => Бамперы в цвет кузова
[pole] => Б
)
)

[
1] => ComplectOption Object
(
[
'compl'] => Array
(
[
complectation_id] => 189
[title_group] => Дизайн
[title_option] => Решетка радиатора черного цвета
[pole] => -
)
)
)



Игорь_Vasinsky
и в цикле пробовал сравнивать?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
espltd
Я не понимаю как это вообще реализовать и желательно без костылей т.к. данных будет очень много. Не могу понять как мне сравнить значения pole у обоих массивах объектов и в соответствии с этим вывести такую таблицу

Бамперы в цвет кузова • •
Решетка радиатора черного цвета • •
Наружные зеркала и ручки дверей черного цвета - •
Наружные зеркала в цвет кузова • -
Ручки дверей в цвет кузова с хромированным эл • -
Накладки на пороги • -

Отличный пример есть на сайте http://renault-perm.ru/compl/new-logan
Это один в один то что нужно! Не понимаю и даже представления не имею как это сделать
Kusss
Ну можно как-то так
http://sandbox.onlinephpfunctions.com/code...8b1755f4e6eeaf5
$array = 
[

0 =>
[

'compl' =>
[

'complectation_id' => 189,
'title_group' => 'Дизайн',
'title_option' => 'Бамперы в цвет кузова',
'pole' => 'Б'
]
],


1 =>
[

'compl' =>
[

'complectation_id' => 189,
'title_group' => 'Дизайн',
'title_option' => 'Решетка радиатора черного цвета',
'pole' => '-'
]
]

];


$result = my($array[0], $array[1]);
print_r($result);

function my($val1, $val2, $a = [], $key = 0){

if (is_array($val1)){
foreach ($val1 AS $key=>$val){
$a = my($val, $val2[$key], $a, $key);
}

}
else {
if ($val1 == $val2)
$a['plus'][$key] = $val1;
else
$a['minus'][$key] = [$val1, $val2];
}

return $a;
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.