Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Функция поиск элемента массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: проблема
phpnoob
Отправлено: 01 Апреля, 2016 - 15:37:59
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




Туплю, не понимаю, как сделать так, чтобы если элемента нет в массиве выводить not found Слёзы в глазах

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.   $bookshelf = ['Tolstoy','Pyshkin','Sholohow','Timati'];
  5.   $author_book = 'Tolstoy';
  6.   $array_count = count($bookshelf);
  7.  
  8.  
  9. function linear_search($bookshelf, $array_count, $author_book){
  10.     $answer = 'not found';
  11.     foreach ($bookshelf as $key=>$value){
  12.       if($value === $author_book){
  13.         echo "Vsego knig na polke: {$array_count} ";
  14.         echo $value . " v " . ($key + 1) . " riady";
  15.       }
  16.     }
  17.  
  18.   }
  19. linear_search($bookshelf, $array_count, $author_book);
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
 
 Top
andrewkard
Отправлено: 01 Апреля, 2016 - 17:42:44
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




phpnoob
Почему не штатными?
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = ['Tolstoy','Pyshkin','Sholohow','Timati'];
  3. $search = 'Tolstoy';
  4. if (array_search($search,$arr) === false){
  5.     echo 'Not found!';
  6. }
  7.  
 
 Top
phpnoob
Отправлено: 01 Апреля, 2016 - 18:53:05
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




andrewkard пишет:
phpnoob
Почему не штатными?
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = ['Tolstoy','Pyshkin','Sholohow','Timati'];
  3. $search = 'Tolstoy';
  4. if (array_search($search,$arr) === false){
  5.     echo 'Not found!';
  6. }
  7.  

в книге по алгоритмам, алгоритм такой описывается я просто хочу повторить.
 
 Top
HiL
Отправлено: 02 Апреля, 2016 - 06:42:42
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $bookshelf = array('Tolstoy','Pyshkin','Sholohow','Timati');
  3. $author_book = 'Tolstoy';
  4.  
  5. function linear_search($bookshelf,  $author_book){
  6.     foreach ($bookshelf as $key=>$value){
  7.       if($value == $author_book){
  8.                 $text = 'Vsego knig na polke:'.count($bookshelf).'<br />'.$value . " v " . ($key + 1) . " riady";
  9.       ;};
  10.     ;};
  11.         if(!empty($text)){
  12.                 echo $text;
  13.         ;}else{
  14.                 echo 'not found';
  15.         ;};
  16.  ;};
  17.  
  18. linear_search($bookshelf,  $author_book);
  19. ?>

(Отредактировано автором: 02 Апреля, 2016 - 06:53:46)

 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Апреля, 2016 - 07:07:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




HiL пишет:
;};
?
 
 Top
phpnoob
Отправлено: 03 Апреля, 2016 - 10:09:48
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




Не могу изменять замысел автора , там 3 вхождения в процедуру идет, но ладно так тоже заработало так как нужно, но ! почему? что значат эти скобки? почему без них не выводит not found?

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     $bookshelf = array('Tolstoy','Pyshkin','Sholohow','Timati');
  4.     $author_book = 'Pyshkin';
  5.     $array_count = count($bookshelf);
  6.  
  7.     function linear_search($bookshelf,  $author_book, $array_count){
  8.       foreach ($bookshelf as $key=>$value){
  9.         if($value == $author_book){
  10.           $text = 'Vsego knig na polke:'.$array_count.'<br />'.$value . " v " . ($key + 1) . " riady";
  11.           ;};
  12.         ;};
  13.       if(!empty($text)){
  14.         echo $text;
  15.         ;}else{
  16.         echo 'not found';
  17.         ;};
  18.       ;};
  19.  
  20.     linear_search($bookshelf,  $author_book, $array_count);
  21.  
  22. ?>
  23.  

(Отредактировано автором: 03 Апреля, 2016 - 10:16:02)

 
 Top
HiL
Отправлено: 03 Апреля, 2016 - 15:43:32
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Переменную array_count можно было получить в нутри функции смысл её передавать. Какие именно скобки вас беспокоят?

(Отредактировано автором: 03 Апреля, 2016 - 16:02:24)

 
 Top
Prizma
Отправлено: 04 Апреля, 2016 - 17:53:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




phpnoob пишет:
riady
ладно я понимаю русские буквы писать транслитом, на английские то слова зачем так мучать?)) вспомнилось.. как слышу так пишу

armancho7777777 пишет:
HiL пишет:
;};
?

я думаю новый метод шифрования кода от коллег:
PHP:
скопировать код в буфер обмена
  1. <?;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;; echo 'foo';;;;echo 'bar';;
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. ;;;;;;;;;?><?=0;?>;;;;;;;;;;;
  5. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  6. ;;;;;;;;;;;$_='-~*';;;;;;;;;;
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;?>

(Отредактировано автором: 04 Апреля, 2016 - 17:55:41)

 
My status
 Top
HiL
Отправлено: 10 Апреля, 2016 - 01:05:58
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Prizma Тролятиной воняешь.
 
 Top
armancho7777777 Супермодератор
Отправлено: 10 Апреля, 2016 - 10:40:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




HiL, вместо того, чтобы хамить может всё же ответите, что это за синтаксис ?
phpnoob пишет:
;};
 
 Top
Няшик
Отправлено: 10 Апреля, 2016 - 20:31:02
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. if(!function_exists('ListElementInArray')) {
  3.     Function ListElementInArray($Array, $IsElem) {
  4.         $List = array();
  5.         foreach($Array as $key => $value) {
  6.             if($value === $IsElem) $List[$key] = $value;
  7.         }
  8.         return $List;
  9.     }
  10. }
  11.  
  12. $Elements = array('Tolstoy_1','Pyshkin','Sholohow','Timati', 'Tolstoy_1');
  13. $Element = 'Tolstoy_' . rand(0, 1);
  14.  
  15. $Test = ListElementInArray($Elements, $Element);
  16.  
  17. if(empty($Test)) { // Не пустой ли массив ??
  18.     // Пустой гад! Выводим
  19.     echo $Element . ' not found';
  20. } else {
  21.     // В этом блоке печатаем всё найденное
  22.     foreach($Test as $idx => $elm) {
  23.         echo 'Нашёл ' . $elm . ' на индексе: ' . $idx . PHP_EOL;
  24.     }
  25. }
  26.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB