Задача вроде тривеальная, но что-то никак не получаеться реализовать Задача есть переменная вида a$="/books/Применение_микроконтроллеров/Микроконтроллеры Фрунзе Том1.djvu"; (фактически локальный путь к файлу) и массив данных вида Array ( [0] => stdClass Object ( [ebookURL] => /books/Книги/Андреев В.С.Теория нелинейных электрических цепей.1982.djvu ) [1] => stdClass Object ( [ebookURL] => /books/Книги/Андреев Ю.Н. Управление конечномерными линейными объектами.djvu ) нужно выполнить простую проверку есть ли стока в данном массиве или нет, даже вытаскивать ничего не надо просто получть true или falsh кака не крутил ни через in_array ни через array_search ничего не находит
Можешь перебрать свой массив объектов в цикле и проверить свойство ebookURL каждого объекта на соответствие заданной строке. Например, так: PHP: <?php $books = array(); // твой массив $searchTerm = 'Какое-то название'; $searched = false; foreach($books as $book) { if($searched = strpos($book->ebookURL, $searchTerm) !== false) break; } // Теперь в переменной $searched будет false, если искомой книги не // встретилось. Если встретилось, в ней будет некое значение типа integer ?>
Если этот массив объектов вытаскивается из б.д., то лучше передавать название искомой книги в запросе к б.д. и пусть MySQL (или какая там б.д.) сама ищет.
sobachnik я пробывал проверять это дело через mysql, но там одновременно переобатываеться более 3000 элэментов , и старница при такой проверке открываеться 3-4 минуты В чикле тоже зависон ещё на большее время вобщем вышел из положения переаботкой массива из обекта в обыный после чего уже выполняю проверку $database->setQuery("SELECT ebookURL FROM #__booklibrary"); $re = $database->loadObjectList(); $coont = sizeof($re); for ($l=1;$l<=$coont;$l++) { $result[$l] = $re[$l]->ebookURL; } if (array_search(a$, $result)) {$chek = " уже присутсвует в каталоге"; } else {$chek = "";}