espltd
23.11.2016 - 09:38
Все бодрого дня! Нужна помощь от всезнаек) Есть массив объектов такого вида:
Не могу и не понимаю как решить данную задачу: У меня на сайте 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
23.11.2016 - 12:24
и в цикле пробовал сравнивать?
_____________
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
23.11.2016 - 12:34
Я не понимаю как это вообще реализовать и желательно без костылей т.к. данных будет очень много. Не могу понять как мне сравнить значения pole у обоих массивах объектов и в соответствии с этим вывести такую таблицу
Бамперы в цвет кузова • •
Решетка радиатора черного цвета • •
Наружные зеркала и ручки дверей черного цвета - •
Наружные зеркала в цвет кузова • -
Ручки дверей в цвет кузова с хромированным эл • -
Накладки на пороги • -
Отличный пример есть на сайте
http://renault-perm.ru/compl/new-loganЭто один в один то что нужно! Не понимаю и даже представления не имею как это сделать
Ну можно как-то так
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;
}