Сравнение на два масива.

trevata

Registered
Значи имам да добавям характеристики за принтер. Полетата за тези характеристики се съхраняват в базата данни по следния начин:
Характеристика, Процесор, Памет, Размер на хартията, Резолюция, Скорост на печат, Интерфейс, Обем на тавата
Като ги изкарвам ги разделям със explode и ги обхождам с цикъл
Код:
                                <?php
                                    foreach($content as $key => $cont){
                                        echo '<div class="CellResultSpec">
                                                     <div class="ceL01"><input type="checkbox" name="remove" /></div>
                                                     <div class="ceL02Spec">'.$cont.'</div>
                                                     <input type="hidden" name="specsel[]" value="'.$cont.'" />
                                                     <div class="formregresultSpec"><input type="text" name="spec[]" class="regfieldstyleSpec" value="'.$_POST['spec'][$key].'"/></div>
                                                     <div class="clear"></div>
                                                </div>';
                                    }
                                ?>
362.jpg

Така започвам тънката част...
Не е задължително да добавям всички полета. След като ги добавя записвам полето и характеристиката в две различни колони
1:
Процесор~Памет~Резолюция~Скорост на печат
и респективно 2:
266 MHz, Priority Processor~16MB~600 x 600 dpi (1200 dpi effective output with HP FastRes 1200)~30 стр./мин. A4, първа стр.< 0.8 сек. (from "ready")
Обаче при редактирането на съответен принтер трябва да извадя всичко характеристики и да сравня с тези, които са въведени за принтера и да изведа попълнените полета. Та как мога да сравня тези два масива след като са с различен брой елементи :?
361.jpg

Трябва попълнените полета да пасват със съответната спецификация.
 
Защо го правиш по този начин?ЗАщо не си направиш таблица в мysql, като си правиш поле за всяка спецификация на принтера?
 
emagi каза:
Защо го правиш по този начин?ЗАщо не си направиш таблица в мysql, като си правиш поле за всяка спецификация на принтера?
Защото от сега не е сигурно че ще са само тези спецификации и човека иска в процес на пълнене да си добавя още полета :?
 
Изобщо не ми харесва начина, по който го правиш!
Дори и да иска клиента в процес на работа да променя проя на полета, данни и.т.н , ти винаги можеш да промениш структурата на таблица в база-данни.
Но както и да е, що се решил да работиш по този начин, не може ли да записва всички данни в опделение за тях ред, А ТАМ където има непопълнен ред, да записваш:
КОето означава, че тази спецификация е празна, и ти запазва броя на елементите в масива :wink:
266 MHz, Priority Processor~16MB~~600 x 600 dpi (1200 dpi effective output with HP FastRes 1200)~30 стр./мин. A4, първа стр.< 0.8 сек. (from "ready")

Тест:
<?php
$string = "266 MHz, Priority Processor~16MB~~600 x 600 dpi (1200 dpi effective output with HP FastRes 1200)~30 стр./мин. A4, първа стр.< 0.8 сек. (from 'ready')";
print_r(explode("~",$string));
?>
Резултат:
Array ( [0] => 266 MHz, Priority Processor [1] => 16MB [2] => [3] => 600 x 600 dpi (1200 dpi effective output with HP FastRes 1200) [4] => 30 стр./мин. A4, първа стр.< 0.8 сек. (from 'ready') )
Елемент 2 е празен
 
А като добави нова спецификация и рече да добави на някой по-стар принтер тази спецификация... Иначе и това е вариант :)
 
trevata каза:
А като добави нова спецификация и рече да добави на някой по-стар принтер тази спецификация... Иначе и това е вариант :)

И да добави тази спецификация, в най-лошият случай ще останат някои полета празни, което не е никакъв проблем :wink:
Все пак си има стандарт за хардуерната спец., която е обща за всички
 

Back
Горе