[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сравнение массивов
mamant
Есть 2 массива - $_GET[]; и $config[];
$_GET[]; - тут хранится инфа о задействованных полях, которые используются в поиске по базе
$config[]; - тут инфа(т.е. конфигурационный файл) структура базы данных
нужно эти два массива сравнить, и те поля, которые совпадают использовать в SELECTe запросе бд
пока что мысли - два вложенных цикла, которые пробегают весь массив, но нету представлений куда складывать инфу о совпавших полях, а потом как вставить все это дело в селект запрос



Спустя 7 минут, 17 секунд (18.08.2010 - 02:23) FatCat написал(а):
Инпуты покажите; и хоть один элемент конфига.

Спустя 32 минуты, 22 секунды (18.08.2010 - 02:56) mamant написал(а):

<field namebd="id" value=""/>
<field
namebd="name" value=""/>
<field
namebd="capacity" value=""/>
<field
namebd="department" value=""/>
<field
namebd="flag" value="0"/>
<field
namebd="building">
<value
value="1" name="ГУК"/>
<value
value="2" name="УЛК"/>
<value
value="3" name="Э"/>
</field>
</config>




инпуты:

<form action="{href-to-dummy}/search" method="GET">
<div>
<div
style="vertical-align:0px;">
размер аудитории (не менее) <input type="text" name="capacity" size="5" id="capacity"/>
</div>
</div>
<br/>

этаж<div class="uniq5" style="display:inline;">
<input
type="text" name="floor[]" size="5" id="floor"/><!-- "SELECT .. WHERE floor IN (". join(' , ', $_GET['floor']).");" -->
<img class= "addfield" title="добавить строчку" src="plus.png" onclick="" />
<img
class= "delfield" title="удалить строчку" src="minus.png" />
</div>
<br/>
<br/>

корпус<select name="bulding" multiple="true" id="bulding">
<xsl:for-each
select="$buldAUD">
<option
value='{@aud}'>
<xsl:variable
name="buildAUD" select="@aud"/>
<xsl:value-of
select="$buldings[@num=$buildAUD]"/>
</option>
</xsl:for-each>
</select>


кафедра<select name="department" multiple="true" id="department">
<xsl:for-each
select="$departAUD">
<option
value='{@daud}'>
<xsl:variable
name="departAUD" select="@daud"/>
<xsl:value-of
select="$departments[@num=$departAUD]"/>
</option>
</xsl:for-each>
</select>
<br/>
<br/>
<input
type = "submit" value = "Показать результаты" />

</form>


Спустя 36 минут, 54 секунды (18.08.2010 - 03:33) FatCat написал(а):
У Вас неоднородные массивы.
Не вижу простого решения.

Спустя 3 часа, 58 минут, 20 секунд (18.08.2010 - 07:31) linker написал(а):
$fields_get = array_keys($_GET);
$fields_config = array_keys($config);
$valid_fields = array_intersect($fields_get, $fields_config);
$valid_fields - массив, содержащий поля, которые находятся в конфиге и готовые к употреблению.

Спустя 1 месяц, 16 дней, 13 часов, 25 минут, 10 секунд (4.10.2010 - 20:56) Denhell написал(а):
linker, а как после этого в массиве $valid_fields сделать авто индексацию элементов? Т.е. чтобы первому найденному пересекающемуся элементу соответствовал индекс 0, следующему 1 и т.д.

Спустя 19 минут, 54 секунды (4.10.2010 - 21:16) linker написал(а):
$fields_get = array_keys($_GET);
$fields_config = array_keys($config);
$valid_fields = array_values(array_intersect($fields_get, $fields_config));

Спустя 1 час, 11 минут, 16 секунд (4.10.2010 - 22:27) Denhell написал(а):
Спасибо огромное! как наберу 10 постов, обязательно плюсик поставлю!


_____________
Быстрый ответ:

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