Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Странная работа in_array!
 
 автор: Саша   (12.05.2006 в 15:48)   письмо автору
 
 

Есть масив $field

Array
(
    [kind_service] => kind_service
    [userid] => userid
    [date_give] => date_give
    [service_id] => service_id
)


и $post

Array
(
    [0] => 
    [kind_service] => 
    [1] => 2267
    [userid] => 2267
    [2] => 1
    [for_] => 1
    [3] => 26
    [service_id] => 26
    [date_give] => 1147330800
)



И цикл

  foreach ( $post as $var => $value ) 
  {
    if ( !in_array ( $var , $field ) ) continue;
     echo "$var<br>";
  }

выводит


0
kind_service
userid
service_id
date_give

Почему 0 проходит?

   
 
 автор: Саша   (12.05.2006 в 16:19)   письмо автору
 
   для: Саша   (12.05.2006 в 15:48)
 

_

   
 
 автор: Loki   (12.05.2006 в 16:41)   письмо автору
 
   для: Саша   (12.05.2006 в 15:48)
 

при сравнении числа со строкой, в данном случае, строка приводится к числу и, естественно, становится нулем. При сравнении строк этого не происходит:
<?
echo in_array "0" $field ); 
  foreach ( 
$post as $var => $value 
  { 
    if ( !
in_array "$var$field ) ) continue; 
     echo 
"$var<br>"
  }  

выведет

kind_service
userid
service_id
date_give

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования