array_diff ругается на валидность аргумента.

Opik

Новичок
array_diff ругается на валидность аргумента.

Ошибка:
The XML page cannot be displayed
<br />
<b>Warning</b>: array_diff(): Argument #2 is not an array in <b>/*/*.php</b> on line <b>757</b><br />
пишет, что второй аргумент - не массив, проверяю его, все равно, ниже код:
PHP:
if(is_array($vic['def']) && !empty($vic['def']))
{
        $arr = array_diff($victims, $vic['def']);
}
else
{
      $arr = $victims;
}
В чем косяк?
 

nirex

Новичок
наврное разного типа массивы , выведи посмотри какие они
 

Opik

Новичок
да делал, обычные массивы.
nirex
разного? приведи пример разных типов? оба массива - одномерные.
 

ForJest

- свежая кровь
var_dump($victims);
var_dump($vic['def']));
На всякий случай - что они являются массивами. Если это в цикле - возможно где-то попадается не массив.
 

Opik

Новичок
PHP:
$vic['def'] = array();
$query = mysql_query("....");
while($row = mysql_fetch_assoc($query))
{
   if(...)
   {
        $vic['def'][] = $row['field'];
   }
}
Вот откуда берется $vic['def'].
 

baev

‹°°¬•
Команда форума
Ну, наверно, в базе пусто...
Или запрос с ошибками
 

Opik

Новичок
baev
Допустим пусто, в чем ошибка? ведь я выше четко определил, что $vic['def'] - массив. Проверил без базы, пустой массив в качестве второго аргумента подходит.
 

baev

‹°°¬•
Команда форума
Да, чё-то я "не в тему" написал...

Версия php какая?
 

ForJest

- свежая кровь
Opik
У PHP на этот счёт другое мнение. Значит стоит вывести отладку и доказать нам и PHP что оно действительно не array.
Оба аргумента.
Если это баг в специфических условиях, то его стоит запостить на bugs.php.net - но нужен кусок, который воспроизводит это всё - достоверно.
В данном случае никто помочь не может, т.к. нет куска воспроизводящего ошибку.

-~{}~ 15.06.05 11:23:

Воспроизведи её с точностью - избавься от базы - задай массив конкретно теми значениями, которые получаются и докажи, что ошибка не у тебя. Или же тебе
в http://phpfaq.ru/debug
 
Сверху