2016-12-22 5 views
0

Это второй раз, когда это произошло сегодня во время кодирования, и это супер разочаровывает, как я не понимаю, что я делаю неправильноPHP думает, что массив представляет собой целое число

В коде ниже $_SESSION['groupData'] является многомерным массив.

foreach($_SESSION['groupData'] as $i){ 
    echo "<pre>"; 
    print_r($i); 
    echo "<pre>"; 

    if(in_array($_SESSION['uid'], $i)){ 

     echo $i['cn'][0]; 
    } 
} 

И ниже выход $i (1 ARRAY за петлю)

Array 
(
    [cn] => Array 
     (
      [count] => 1 
      [0] => SSO Administrators 
     ) 

    [0] => cn 
    [uniquemember] => Array 
     (
      [count] => 10 
      [0] => u1 
      [1] => u2 

     ) 

    [1] => uniquemember 
    [count] => 2 
    [dn] => cn=blah 
) 


Array 
(
    [cn] => Array 
     (
      [count] => 1 
      [0] => group 
     ) 

    [0] => cn 
    [uniquemember] => Array 
     (
      [count] => 10 
      [0] => u1 
      [1] => u2 

     ) 

    [1] => uniquemember 
    [count] => 2 
    [dn] => cn=blank 
) 


Array 
(
    [cn] => Array 
     (
      [count] => 1 
      [0] => bork 
     ) 

    [0] => cn 
    [uniquemember] => Array 
     (
      [count] => 10 
      [0] => u1 
      [1] => u2 

     ) 

    [1] => uniquemember 
    [count] => 2 
    [dn] => cn=blah 
) 

Но это дает мне ошибку

«Предупреждение: in_array() ожидает параметр 2 является массивом, целое число «

$i - массив, не так ли? почему еще $i echo как массив с print_r($i) ??

Любая помощь была бы принята с благодарностью!

Спасибо!

Джо

+0

Ни один из ваших цифровых значений не является массивом –

+0

@JohnConde Он не выполняет итерации по этим массивам, это элементы основного массива, который он выполняет. – Barmar

+1

Действительно ли это весь код? Готов поспорить, у вас есть дополнительный код, который повторно использует переменную '$ i'. – Barmar

ответ

0

Я попытался повторно инициализирует $ я перед циклом через него:

$i = array(); 

И это не сработало. Затем я попробовал манипулировать типом:

$j = (array) $i; 

И это действительно сработало. Странно, что PHP работает таким образом.

 Смежные вопросы

  • Нет связанных вопросов^_^