2014-01-24 6 views
-1

Я борюсь с этой проблемой и на самом деле решил ее один раз, но до сих пор не понимаю, в чем проблема. Я продолжаю работать в «Недопустимое смещение строки». Хорошо, да, у меня есть массив. Да, у него есть ключи, к которым я пытаюсь получить доступ, а значения для некоторого ключа - это строки. По какой-то магической причине все работает в одном месте и не в другом. Кроме того, интересно то, что когда я пытаюсь var dump часть массива, все выглядит отлично (возможно, из-за недостатка знаний).Недопустимое смещение строки php

Благодарим вас за помощь! Попробуйте объяснить просто. У меня когда-то был парень, который полностью переписал мой код. Это здорово, но я пытаюсь учиться, и он просто дал мне покой пирога, слишком большой для меня, чтобы укусить.

Вот код * Часть, которая перекликается с кодом, находится внизу этого блока ниже.

$artists = get_artists_all(); 

foreach ($artists as $artists_id => $artist) { 

     if (isset($_GET["id"])) { 
      $artists_id = $_GET["id"]; 
       if(isset($artists["$artists_id"])){ 
       $artist = $artists[$artists_id]; 
      } 
     } 
     if (!isset($artist)){ 
      header("Location:".BASE_URL."artists/"); 
      exit(); 
     } 

    foreach ($artist as $work) { 

     if (isset($_GET["id"])) { 
      $artist_id = $_GET["id"]; 
       if(isset($artist["$artist_id"])){ 
       $work = $artist[$artist_id]["id"]; 
       } 
     } 
     if (!isset($work)){ 
      header("Location:".BASE_URL."artist/"); 
      exit(); 

     } 
    } 
      } 

echo "<ul>"; 
foreach ($artist as $work){ 

    echo "<pre>"; 
    echo $work["name"] . "\n"; 
    echo $work["title"]; 
    echo "</pre>"; 

} 
echo '</ul>'; 

Вот ошибка, которую я получаю. Обратите внимание, что, несмотря на ошибки, он все еще показывает требуемую информацию

Предупреждение: Illegal строка смещения 'имя' в C: \ XAMPP \ HTDOCS \ художников \ artist.php на линии 52

предупреждения: Illegal строка смещения «названия» в C: \ XAMPP \ HTDOCS \ художников \ artist.php на линии 53

Анатолий Зверева «Портрет Владимир Немухине» Анатолий Зверев «Закат» Анатолий Зверев «Молодые Женщина "

И последнее, но не менее важное - это часть массива, с которым я работаю.

$zverev = array(
    "name" => "Anatoly Zverev", 
    $zverev[] = array(
     "name" => "Anatoly Zverev", 
     "title" => '"'."Portrait of Vladimir Nemukhin".'"', 
     "year" => 1982, 
     "media" => "Mixed media on paper", 
     "dimentions" => "H:" . 18.5 . " x W:" . 14 . "in", 
     "availability" => "Sold", 
     "thumb" => IMG_PATH . "anatoly_zverev".THUMB_PATH. "Thumb_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg", 
     "lg" => IMG_PATH . "anatoly_zverev" . LG_PATH ."Lg_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
     ), 
    $zverev[] = array(
     "name" => "Anatoly Zverev", 
     "title" => '"'."Sunset".'"', 
     "year" => 1980, 
     "media" => "Mixed media on paper", 
     "dimentions" => "H:" . 33.7 . " x W:" . 24 . "in", 
     "availability" => $available, 
     "thumb" => IMG_PATH . "anatoly_zverev".THUMB_PATH. "Thumb_Anatoly_Zverev_Sunset.jpg", 
     "lg" => IMG_PATH . "anatoly_zverev" . LG_PATH ."Lg_Anatoly_Zverev_Sunset.jpg" 
     ), 
    $zverev[] = array(
     "name" => "Anatoly Zverev", 
     "title" => '"'."Young Woman".'"', 
     "year" => 1966, 
     "media" => "Ink on paper", 
     "dimentions" => "H:" . 16 . " x W:" . 11.2 . "in", 
     "availability" => $available, 
     "thumb" => IMG_PATH . "anatoly_zverev".THUMB_PATH. "Thumb_Anatoly_Zverev_Young_Woman.jpg", 
     "lg" => IMG_PATH . "anatoly_zverev" . LG_PATH ."Lg_Anatoly_Zverev_Young_Woman.jpg" 
     ) 
     ), 

По запросу var_dump ($ художника) .... Странно, но он перебирает эту часть массива 3 раза

array(5) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    [0]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(31) ""Portrait of Vladimir Nemukhin"" 
    ["year"]=> 
    int(1982) 
    ["media"]=> 
    string(20) "Mixed media on paper" 
    ["dimentions"]=> 
    string(15) "H:18.5 x W:14in" 
    ["availability"]=> 
    string(4) "Sold" 
    ["thumb"]=> 
    string(87) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
    ["lg"]=> 
    string(84) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
    } 
    [1]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(8) ""Sunset"" 
    ["year"]=> 
    int(1980) 
    ["media"]=> 
    string(20) "Mixed media on paper" 
    ["dimentions"]=> 
    string(15) "H:33.7 x W:24in" 
    ["availability"]=> 
    string(10) "/contact/"" 
    ["thumb"]=> 
    string(67) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Sunset.jpg" 
    ["lg"]=> 
    string(64) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Sunset.jpg" 
    } 
    [2]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(13) ""Young Woman"" 
    ["year"]=> 
    int(1966) 
    ["media"]=> 
    string(12) "Ink on paper" 
    ["dimentions"]=> 
    string(15) "H:16 x W:11.2in" 
    ["availability"]=> 
    string(10) "/contact/"" 
    ["thumb"]=> 
    string(72) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Young_Woman.jpg" 
    ["lg"]=> 
    string(69) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Young_Woman.jpg" 
    } 
    ["id"]=> 
    int(46) 
} 
array(5) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    [0]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(31) ""Portrait of Vladimir Nemukhin"" 
    ["year"]=> 
    int(1982) 
    ["media"]=> 
    string(20) "Mixed media on paper" 
    ["dimentions"]=> 
    string(15) "H:18.5 x W:14in" 
    ["availability"]=> 
    string(4) "Sold" 
    ["thumb"]=> 
    string(87) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
    ["lg"]=> 
    string(84) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
    } 
    [1]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(8) ""Sunset"" 
    ["year"]=> 
    int(1980) 
    ["media"]=> 
    string(20) "Mixed media on paper" 
    ["dimentions"]=> 
    string(15) "H:33.7 x W:24in" 
    ["availability"]=> 
    string(10) "/contact/"" 
    ["thumb"]=> 
    string(67) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Sunset.jpg" 
    ["lg"]=> 
    string(64) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Sunset.jpg" 
    } 
    [2]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(13) ""Young Woman"" 
    ["year"]=> 
    int(1966) 
    ["media"]=> 
    string(12) "Ink on paper" 
    ["dimentions"]=> 
    string(15) "H:16 x W:11.2in" 
    ["availability"]=> 
    string(10) "/contact/"" 
    ["thumb"]=> 
    string(72) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Young_Woman.jpg" 
    ["lg"]=> 
    string(69) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Young_Woman.jpg" 
    } 
    ["id"]=> 
    int(46) 
} 
array(5) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    [0]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(31) ""Portrait of Vladimir Nemukhin"" 
    ["year"]=> 
    int(1982) 
    ["media"]=> 
    string(20) "Mixed media on paper" 
    ["dimentions"]=> 
    string(15) "H:18.5 x W:14in" 
    ["availability"]=> 
    string(4) "Sold" 
    ["thumb"]=> 
    string(87) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
    ["lg"]=> 
    string(84) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
    } 
    [1]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(8) ""Sunset"" 
    ["year"]=> 
    int(1980) 
    ["media"]=> 
    string(20) "Mixed media on paper" 
    ["dimentions"]=> 
    string(15) "H:33.7 x W:24in" 
    ["availability"]=> 
    string(10) "/contact/"" 
    ["thumb"]=> 
    string(67) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Sunset.jpg" 
    ["lg"]=> 
    string(64) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Sunset.jpg" 
    } 
    [2]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(13) ""Young Woman"" 
    ["year"]=> 
    int(1966) 
    ["media"]=> 
    string(12) "Ink on paper" 
    ["dimentions"]=> 
    string(15) "H:16 x W:11.2in" 
    ["availability"]=> 
    string(10) "/contact/"" 
    ["thumb"]=> 
    string(72) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Young_Woman.jpg" 
    ["lg"]=> 
    string(69) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Young_Woman.jpg" 
    } 
    ["id"]=> 
    int(46) 
} 
array(5) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    [0]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(31) ""Portrait of Vladimir Nemukhin"" 
    ["year"]=> 
    int(1982) 
    ["media"]=> 
    string(20) "Mixed media on paper" 
    ["dimentions"]=> 
    string(15) "H:18.5 x W:14in" 
    ["availability"]=> 
    string(4) "Sold" 
    ["thumb"]=> 
    string(87) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
    ["lg"]=> 
    string(84) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
    } 
    [1]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(8) ""Sunset"" 
    ["year"]=> 
    int(1980) 
    ["media"]=> 
    string(20) "Mixed media on paper" 
    ["dimentions"]=> 
    string(15) "H:33.7 x W:24in" 
    ["availability"]=> 
    string(10) "/contact/"" 
    ["thumb"]=> 
    string(67) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Sunset.jpg" 
    ["lg"]=> 
    string(64) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Sunset.jpg" 
    } 
    [2]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(13) ""Young Woman"" 
    ["year"]=> 
    int(1966) 
    ["media"]=> 
    string(12) "Ink on paper" 
    ["dimentions"]=> 
    string(15) "H:16 x W:11.2in" 
    ["availability"]=> 
    string(10) "/contact/"" 
    ["thumb"]=> 
    string(72) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Young_Woman.jpg" 
    ["lg"]=> 
    string(69) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Young_Woman.jpg" 
    } 
    ["id"]=> 
    int(46) 
} 
array(5) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    [0]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(31) ""Portrait of Vladimir Nemukhin"" 
    ["year"]=> 
    int(1982) 
    ["media"]=> 
    string(20) "Mixed media on paper" 
    ["dimentions"]=> 
    string(15) "H:18.5 x W:14in" 
    ["availability"]=> 
    string(4) "Sold" 
    ["thumb"]=> 
    string(87) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
    ["lg"]=> 
    string(84) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Portrait_Vladimir_Nemukhin.jpg" 
    } 
    [1]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(8) ""Sunset"" 
    ["year"]=> 
    int(1980) 
    ["media"]=> 
    string(20) "Mixed media on paper" 
    ["dimentions"]=> 
    string(15) "H:33.7 x W:24in" 
    ["availability"]=> 
    string(10) "/contact/"" 
    ["thumb"]=> 
    string(67) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Sunset.jpg" 
    ["lg"]=> 
    string(64) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Sunset.jpg" 
    } 
    [2]=> 
    array(8) { 
    ["name"]=> 
    string(14) "Anatoly Zverev" 
    ["title"]=> 
    string(13) ""Young Woman"" 
    ["year"]=> 
    int(1966) 
    ["media"]=> 
    string(12) "Ink on paper" 
    ["dimentions"]=> 
    string(15) "H:16 x W:11.2in" 
    ["availability"]=> 
    string(10) "/contact/"" 
    ["thumb"]=> 
    string(72) "/artists/anatoly_zverev/images/ldpi/Thumb_Anatoly_Zverev_Young_Woman.jpg" 
    ["lg"]=> 
    string(69) "/artists/anatoly_zverev/images/mdpi/Lg_Anatoly_Zverev_Young_Woman.jpg" 
    } 
    ["id"]=> 
    int(46) 
} 
+0

Где определение для get_artists_all(); – Kisaragi

+0

Можете ли вы сделать var_dump() на $ artist и поместить его сюда? – Yani

+0

Было бы полезно, если бы вы указали, WHICH всех этих строк на самом деле является строкой 52. Но, как говорится в ошибке, вы используете незаконное смещение строки, то есть вы пытаетесь получить доступ к строке, как если бы это был массив (обычно это нормально), но с использованием ключа, который НЕ может быть сопоставлен с целым числом. например '$ foo = 'foo'; echo $ foo [array()] 'приведет к этой ошибке. –

ответ

0

В вашем первом цикл foreach;

foreach ($artist as $work) { 

    if (isset($_GET["id"])) { 
     $artist_id = $_GET["id"]; 
      if(isset($artist["$artist_id"])){ 
      $work = $artist[$artist_id]["id"]; 
      } 
    } 
    if (!isset($work)){ 
     header("Location:".BASE_URL."artist/"); 
     exit(); 

    } 

Вы сказали, что «Для каждой переменной $ художника, использовать переменную $ работу», но в этом цикле, вы все еще ссылки в $ художника, а не $ работы.

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