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]   

> Без описания
Specter
Отправлено: 25 Июля, 2014 - 18:01:22
Post Id


Новичок


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


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




Здравствуйте.
Ближе к сути.
Есть два массива:

PHP:
скопировать код в буфер обмена
  1.  
  2. // 1 массив
  3. $ar1 = array('хомяк', 'козел', 'волк');
  4. // 2 массив
  5. $ar2 = array([0]=>Array
  6.         (
  7.             ['id'] => 1,
  8.             ['title'] => козел
  9.         )
  10.  
  11.     [1] => Array
  12.         (
  13.             ['id'] => 2,
  14.             ['title'] => волк
  15.         ));
  16.  

Как узнать есть ли "хомяк" в первом массиве?
Есть более изящное решение чем через foreach?
На выходе хорошо бы получить 2 массива
PHP:
скопировать код в буфер обмена
  1.  
  2. $re1 = array(id,id);
  3. $re2 = array("хомяк", и т.д.);
  4.  

Затык у меня один простой массив, второй многомерный ассоц.
----
М.б. есть возможность избежать перебора массивов, правильно сформировав запрос к бд?
Использую CI.
Запрос пишу таким образом
PHP:
скопировать код в буфер обмена
  1.  $this->db->where_in('titles', $ar1);

В итоге получаю второй массив ar2. Хорошо было бы получить последовательные данные от бд, т.е.
PHP:
скопировать код в буфер обмена
  1. $ar2 = array(
  2.  
  3. [0]=>Array
  4.         (
  5.             ['id'] => null/false,
  6.             ['title'] => null/false
  7.         ),
  8. [1]=>Array
  9.         (
  10.             ['id'] => 1,
  11.             ['title'] => козел
  12.         ),
  13.  
  14.     [2] => Array
  15.         (
  16.             ['id'] => 2,
  17.             ['title'] => волк
  18.         ));

Есть идеи?

(Отредактировано автором: 25 Июля, 2014 - 18:02:28)

 
 Top
for
Отправлено: 25 Июля, 2014 - 21:30:13
Post Id



Новичок


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


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




Попробуй клаузулу WHERE. Если больше чем одно значение хочешь вытащить то в связке с IN.
 
 Top
Specter
Отправлено: 25 Июля, 2014 - 22:24:45
Post Id


Новичок


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


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




for пишет:
Попробуй клаузулу WHERE. Если больше чем одно значение хочешь вытащить то в связке с IN.

Как раз таки использую ее. На выходе массив:
PHP:
скопировать код в буфер обмена
  1. $ar2 = array([0]=>Array
  2.         (
  3.             ['id'] => 1,
  4.             ['title'] => козел
  5.         )
  6.  
  7.     [1] => Array
  8.         (
  9.             ['id'] => 2,
  10.             ['title'] => волк
  11.         ));

$this->db->where_in('titles', $ar1);
 
 Top
for
Отправлено: 25 Июля, 2014 - 22:32:00
Post Id



Новичок


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


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




Ну а как ты получаешь не то что хотел?
 
 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