Не работает in_array php помогите разобраться

Y1
На сайте с 31.08.2011
Offline
85
4599

есть на входе два массива чисел

119;22;7;12;19;14

3;4;5;6;14;19

они находятся в $data[]['common_numbers']

есть такой кусок кода

//проходим весь ряд по порядку
foreach($data as $key =>$value)
{
echo '<tr><td>'.($data_count - $key).'</td><td>';

$odd = '';
$even = '';
$values = '';
$d12 = '';
$d13 = '';
$d14 = '';
$d15 = '';
$d16 = '';
$d17 = '';
$d18 = '';
$d19 = '';
$d110 = '';

echo 'обрабатываем элемент ряда '.$key.'</br>';

$temp_arr = array();
$temp_arr = $value['common_numbers'];
//получаем основные числа ряда и проходим по каждому числу в цикле

for($iter = 0;$iter< count($temp_arr);$iter++){
$nvalue = $temp_arr[$iter];
echo 'обрабатываем элемент массива основных чисел '.$nvalue.'</br>';
$valuess = $valuess.$nvalue.',';
if($nvalue%2 == 0)
$even = $even.$nvalue.',';
else
$odd = $odd.$nvalue.',';
//проходим в цикле по предыдущим элементам ряда для этого $i = $key-1 (на 1 меньше)
for($i = $key-1; $i>=0; $i--){
//получаем массив основных чисел для предыдущих рядов
$arrs = $data[$i]['common_numbers'];
echo 'обрабатываем элемент ряда '.$i.'</br>';
//echo count($arr);
//проверяем вхождение числа в массив ряда
echo 'проверяем элемент '.$nvalue.' на вхождение в массив осн чисел '.print_r($arrs,true).'</br>';
if(in_array($nvalue,$arrs))
{
echo 'элемент '.$nvalue.' входит в массив </br>';
// echo $nvalue.' ';
$v = $key - $i;
switch($v){
case 1: $d12 = $d12.$nvalue.','; break;
case 2: $d13 = $d13.$nvalue.','; break;
case 3: $d14 = $d14.$nvalue.','; break;
case 4: $d15 = $d15.$nvalue.','; break;
case 5: $d16 = $d16.$nvalue.','; break;
case 6: $d17 = $d17.$nvalue.','; break;
case 7: $d18 = $d18.$nvalue.','; break;
case 8: $d19 = $d19.$nvalue.','; break;
case 9:$d110 = $d110.$nvalue.','; break;
}
}else
{
echo 'Элемент '.$nvalue.' не входит в массив '.print_r($arrs,true).'</br>';
}
}
}
echo $valuess.'</td><td>'.$value['common_numbers_sum'].'</td><td>'.$even.'</td><td>'.$odd.'</td>';

на выходе получаю следующее

обрабатываем элемент ряда 0

обрабатываем элемент массива основных чисел 119

обрабатываем элемент массива основных чисел 22

обрабатываем элемент массива основных чисел 7

обрабатываем элемент массива основных чисел 12

обрабатываем элемент массива основных чисел 19

обрабатываем элемент массива основных чисел 14

обрабатываем элемент ряда 1

обрабатываем элемент массива основных чисел 3

обрабатываем элемент ряда 0

проверяем элемент 3 на вхождение в массив осн чисел Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

Элемент 3 не входит в массив Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

обрабатываем элемент массива основных чисел 4

обрабатываем элемент ряда 0

проверяем элемент 4 на вхождение в массив осн чисел Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

Элемент 4 не входит в массив Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

обрабатываем элемент массива основных чисел 5

обрабатываем элемент ряда 0

проверяем элемент 5 на вхождение в массив осн чисел Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

Элемент 5 не входит в массив Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

обрабатываем элемент массива основных чисел 6

обрабатываем элемент ряда 0

проверяем элемент 6 на вхождение в массив осн чисел Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

Элемент 6 не входит в массив Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

обрабатываем элемент массива основных чисел 14

обрабатываем элемент ряда 0

проверяем элемент 14 на вхождение в массив осн чисел Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

Элемент 14 не входит в массив Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

обрабатываем элемент массива основных чисел 19

обрабатываем элемент ряда 0

проверяем элемент 19 на вхождение в массив осн чисел Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

Элемент 19 не входит в массив Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )

собственно почему 14 и 19 не входит в массив Array ( [0] => 119 [1] => 22 [2] => 7 [3] => 12 [4] => 19 [5] => 14 )? выходит in_array отрабатывает неправильно?

при этом если поменять их местами

119;22;7;12;19;14

3;4;5;6;19;14

то 19 входит что еще более странно

дани мапов
На сайте с 06.09.2012
Offline
204
#1
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
zexis
На сайте с 09.08.2005
Offline
388
#2

Не стоит выкладывать такие большие куски кода.

Вряд ли кто будет их разбирать.

Проблему нужно суживать до простых ситуаций и их уже обсуждать.

R
На сайте с 18.12.2009
Offline
92
#3

Функция in_array() не работает с многомерными массивами.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий