2015-03-10 2 views
-2

Использования PHP Я нахожусь пытаюсь повторить свой первый элемент из массива ...Не может повторить из первого элемента из массива

Array 
(
    [docs] => Array 
     (
      [0] => Array 
       (
        [imgurl] => http://www.example.com/image1.jpg 
       ) 

      [1] => Array 
       (
        [imgurl] => http://www.example.com/image2.jpg 
       ) 

      [2] => Array 
       (
        [imgurl] => http://www.example.com/image3.jpg 
       ) 

      [3] => Array 
       (
        [imgurl] => http://www.example.com/image4.jpg 
       ) 

     ) 

) 

Я использую следующий PHP, чтобы попытаться отобразить первый элемент. ..

echo $array['docs'][0]['imgurl']; 

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

Warning: Illegal string offset 'docs' 

Может кто-нибудь показать мне, что я делаю неправильно?

+3

Пожалуйста, покажите нам свой ** полный ** и ** настоящий ** код! – Rizier123

+0

Ваш текущий синтаксис прав, но есть что-то не так, прежде чем вы повторите это, так что дайте весь код, пожалуйста! –

+0

Вы пытаетесь использовать строку как массив. См. [Здесь] (http://stackoverflow.com/questions/9869150/illegal-string-offset-warning-php). Проверьте определение. – ethrbunny

ответ

2

@ fightstarr20, неверный формат массива. Я просто исправлю это, а потом попробовал, и он отлично работает.

  <?php 
       $array = Array('docs' => Array 
         (
          0 => Array 
           (
            'imgurl' => 'http://www.example.com/image1.jpg' 
           ), 
          1 => Array 
           (
            'imgurl' => 'http://www.example.com/image2.jpg' 
           ), 
          2 => Array 
           (
            'imgurl' => 'http://www.example.com/image3.jpg' 
           ), 
          3 => Array 
           (
            'imgurl' => 'http://www.example.com/image4.jpg' 
           ), 
         ) 
       ); 
       echo $array['docs'][0]['imgurl']; 
       ?> 

Выход: - http://www.example.com/image1.jpg

+0

Ну просто написать код, который работает, не решает проблему OP вообще! Я мог бы написать: «эхо» эй »;« и сказать, что это работает, это тоже ответ? НЕТ! – Rizier123

+0

На самом деле он решает вопрос .... прочитайте его код еще раз. – Eda190

+0

@ Eda190 Нет, нет! Просто переписывающий код, который мы даже не видим, ничего не решает и без объяснения, которое мы не можем дать OP, потому что мы не видим его кода, это еще хуже! * Удалите свой код и напишите: echo "test"; и код будет работать * <- Это ответ? Нет, это не работает код, но он не устраняет проблему из OP – Rizier123

0

Поскольку вы не дали полный код, который я предполагаю, что вы следующий массив:

$array = array('docs'=>array(
    '0'=>array('imgurl'=>'http://www.example.com/image0.jpg'), 
    '1'=>array('imgurl'=>'http://www.example.com/image1.jpg'), 
    '2'=>array('imgurl'=>'http://www.example.com/image2.jpg'), 
    '3'=>array('imgurl'=>'http://www.example.com/image3.jpg'), 
)); 

Тогда вы можете получить доступ к imgurl как:

echo $array['docs'][0]['imgurl']; 

Вы можете проверить код here

+0

* Предполагаю * Вы предполагаете, что OP имеет этот код, но почему тогда он не работает для OP? – Rizier123

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