За последние 24 часа нас посетили 22735 программистов и 1225 роботов. Сейчас ищут 685 программистов ...

Ошибка при объявлении массива: Illegal offset type

Тема в разделе "PHP для новичков", создана пользователем TeslaFeo, 29 июл 2017.

Метки:
  1. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    Приветствую, уважаемые форумчане!
    Объясните, плз, криворучке, почему при объявлении массива:
    PHP:
    1. $array = array(  
    2. [45] => array( array(0, 1), array(0, 1) ),
    3. [46] => array( array(0, 1, 2), array(0) ),
    4. [40] => array( array(0, 1, 2), array(0) ),
    5. [41] => array( array(0, 1, 2), array(0, 1, 2) ),
    6. [43] => array( array(0, 1, 2), array(0, 1) ),
    7. [44] => array( array(0, 1, 2), array(0, 1, 2) ),
    8. [47] => array( array(0, 1, 2), array(0, 1, 2) )
    9. );
    он получает Illegal offset type (недопустимый тип смещения) в каждой строке, кроме первой и последней.
    Заранее благодарю!
     
  2. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    А зачем у Вас квадратные скобки?
     
    TeslaFeo и denis01 нравится это.
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    У меня ошибок не выдаёт, ты с [ и ] выполняешь?
     
    TeslaFeo нравится это.
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    я же криворучка. :)
    убрал квадратные скобки)
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Потому что индексы могут быть числами или строками, но не массивами
     
    TeslaFeo и denis01 нравится это.
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    я понял. PHP принял их за массивы.
    От куда у меня в голове эти квадратные скобки)
     
  7. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @TeslaFeo
    А не пробовали так объявлять:
    Код (Text):
    1. $array = [
    2. 45 => [ [ 0, 1 ], [ 0, 1 ] ],
    3. 46 => [ [ 0, 1, 2 ], [ 0 ] ],
    4. 40 => [ [ 0, 1, 2 ], [ 0 ] ],
    5. 41 => [ [ 0, 1, 2 ], [ 0, 1, 2 ] ],
    6. 43 => [ [ 0, 1, 2 ], [ 0, 1 ] ],
    7. 44 => [ [ 0, 1, 2 ], [ 0, 1, 2 ] ],
    8. 47 => [ [ 0, 1, 2 ], [ 0, 1, 2 ] ]
    9. ];
    Мне кажется так лучше читается структура и содержимое.
     
    TeslaFeo нравится это.