Как получить значения массива с помощью цикла foreach - PullRequest
2 голосов
/ 22 сентября 2019

Я пытаюсь получить значения массива, используя цикл foreach, но получаю ошибку Undefined index.Это результат var_dump, показанный ниже.

       Array
    (
     [0] => Array
      (
        [0] => stdClass Object
            (
                [id] => 670
                [snippets_name] => flkgjfldgkjlfdkj ldkjfg lkgfjd lkjg 
                [snippets_keyword] => 
                [snippets_description] => dkjldkjflkfjldskfjldkfjlkjl
                [snippet_image] => https://i.imgur.com/4WAnAP7.jpg
                [snippet_tags] => 
                [snippet_tags_id] => 
                [seo_description] => Bootstrap example of 
             flkgjfldgkjlfdkj ldkjfg lkgfjd lkjg  using 
              Bootstrap,Javascript,jquery,CSS code Snippet By hitesh- 
               chauhan57765
                [snippets_html] => kfdlkjflkgjldkgjdlkgjdl l
                [snippets_css] => 
                [snippets_javascript] => 
                [bootstrap_version_id] => 5
                [javascript_version_id] => 1
                [font_version_id] => 2
                [url_slug] => flkgjfldgkjlfdkj-ldkjfg-lkgfjd-lkjg- 
                21588457
                [snippets_created_ip] => 127.0.0.1
                [snippets_category] => 0
                [is_verified] => 0
                [listed_by] => 28
                [date_modified] => 2019-09-22 04:57:31
                [date_created] => 2019-09-22 04:57:31
                [is_featured] => 0
                [search_values] => 
                [counter_views] => 2
                [avarage_rating] => 
                [main_image] => 
                [date_notify] => 
                [status] => 0
                [last_edit_ip] => 127.0.0.1
                [date_notify_expired] => 
            )

             )

        )

Вот что я пытался получить результаты.Но получаю сообщение: неопределенный индекс: ошибка snippet_name.пожалуйста, помогите.

                foreach($snippets_tags as $post)

                { 
               $listed_by = $post['snippets_name'];
                }

Ответы [ 4 ]

2 голосов
/ 22 сентября 2019

Вы можете попробовать

echo $snippets_tags[0][0]->snippets_name

Или, используя foreach

foreach($snippets_tags[0] as $post)
{ 
  echo $post->snippets_name;echo '<br/>';
}

Рабочий пример: https://3v4l.org/D0aOi

1 голос
/ 22 сентября 2019

Дамп показывает, что у вас есть массивы объектов (не массивы - вот почему вы получаете сообщение «неопределенный индекс»), вложенные во внешний массив.Таким образом, чтобы извлечь snippets_name свойство каждого объекта, вам понадобятся два foreach цикла:

$snippetsNames = [];
foreach ($data as $objects) {
    foreach ($objects as $object) {
       $snippetsNames[] = $object->{'snippets_name'} ?? 'Unknown name';
    }
}

Обратите внимание, что вы можете обращаться к свойству объекта по строке, используя синтаксис фигурных скобок, показанный выше.И вы также можете столкнуться с ситуацией, когда у объекта нет заданного свойства;Вы должны проверить эту ситуацию с помощью isset() (или просто использовать короткий и удобный синтаксис с ??, показанным выше).

0 голосов
/ 22 сентября 2019

Я решил это с помощью этого кода -

foreach ($snippets_tags as $snippets) {

                foreach($snippets as $key=>$post)

                { 
                    $listed_by = $post->listed_by;
                }
         }
0 голосов
/ 22 сентября 2019

Можно попробовать,

$Data = $snippets_tags[0];
$ret_arr = {};
foreach($Data as $post)
{ 
  $ret_arr['Name'] = $post['snippets_name'];
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...