Gray Adams
Gray Adams

Reputation: 4117

How would I read this array ("stdClass Object")

I am using the Quizlet API 2.0, and I am pretty new to this

How do I read a value(s) from something like this:

stdClass Object ( [id] => 102269 [name] => Learn Spanish with Cats! [set_count] => 3 [user_count] => 10 [created_date] => 1308035691 [is_public] => 1 [has_password] => [has_access] => 1 [has_discussion] => 1 [member_add_sets] => 1 [description] => This set is exclusively for Spanish flashcard sets with relevant cat images as the set definitions. [sets] => Array ( [0] => stdClass Object ( [id] => 6081999 [url] => http://quizlet.com/6081999/lesson-4-with-catsdogs-flash-cards/ [title] => Lesson 4 (with cats+dogs) [created_by] => wsvincent [term_count] => 33 [created_date] => 1311984796 [modified_date] => 1312490710 [has_images] => 1 [subjects] => Array ( [0] => spanish cats dogs ) [visibility] => public [editable] => groups [has_access] => 1 ) [1] => stdClass Object ( [id] => 5855751 [url] => http://quizlet.com/5855751/paso-a-paso-book-1-chapter-4-flash-cards/ [title] => Paso a Paso Book 1 Chapter 4 [created_by] => catdawg426 [term_count] => 30 [created_date] => 1307761267 [modified_date] => 1307819129 [has_images] => 1 [subjects] => Array ( [0] => spanish ) [visibility] => public [editable] => only_me [has_access] => 1 ) [2] => stdClass Object ( [id] => 5873819 [url] => http://quizlet.com/5873819/los-gatos-de-viaje-flash-cards/ [title] => Los Gatos de Viaje! [created_by] => tiffreja [term_count] => 21 [created_date] => 1307996657 [modified_date] => 1307996796 [has_images] => 1 [subjects] => Array ( [0] => spanish [1] => language [2] => foreign ) [visibility] => public [editable] => only_me [has_access] => 1 ) ) [members] => Array ( [0] => stdClass Object ( [username] => philfreo [role] => creator [email_notification] => 1 ) [1] => stdClass Object ( [username] => milkncookies [role] => member [email_notification] => 1 ) [2] => stdClass Object ( [username] => Icypaw [role] => member [email_notification] => ) [3] => stdClass Object ( [username] => luckycat10 [role] => member [email_notification] => ) [4] => stdClass Object ( [username] => jeffchan [role] => member [email_notification] => ) [5] => stdClass Object ( [username] => catchdave [role] => member [email_notification] => 1 ) [6] => stdClass Object ( [username] => tiffreja [role] => member [email_notification] => 1 ) [7] => stdClass Object ( [username] => catdawg426 [role] => member [email_notification] => 1 ) [8] => stdClass Object ( [username] => ihaque [role] => member [email_notification] => 1 ) [9] => stdClass Object ( [username] => jalenack [role] => member [email_notification] => 1 ) ) )

For instance, if I want to get the name of that first set, "Learn Spanish with Cats", how do I echo it via variable?

It already converts the JSON to an array I think:

$data = json_decode($json);

Upvotes: 6

Views: 34213

Answers (5)

Breith
Breith

Reputation: 2298

Here is a simple solution to convert a stdClass Object in array in php with get_object_vars

Look at : https://www.php.net/manual/en/function.get-object-vars.php

Example :

dump($array);
$var = get_object_vars($array);
dump($var);

Or replace dump() function by print_r()

Upvotes: 3

Rohit Singh
Rohit Singh

Reputation: 1

In case you got stdClass Object in the array, for example
$user = $result1->fetch_object() then set $user into a variable $val = $user->user_id (make sure user_id is your database column name, its the column name). You will get a single value in $val that comes from database.

Upvotes: 0

I have looked something before, when you use the json_decode()

$data = json_decode();

U can send some parameters, the first of them is "$json", it will be the json string

{"1":"first","2":"second"}

But that json decode with one parameter return an Object and the default value of the second parameter is "false". If you want that back in array you only need to use the second parameter and send "true".

$data =json_decode($json,true);

And you can recibe it like an array. :)

Upvotes: 1

Shashank Agarwal
Shashank Agarwal

Reputation: 718

Use function key

eg echo key($array)

Upvotes: 1

Michael Berkowski
Michael Berkowski

Reputation: 270647

Your object is not an array, but rather, well, an Object. So use the -> operator to access its properties:

echo $data->name;

It contains a property which itself is an array of additional objects. For example, to get the URL of id 6081999, you would do:

echo $data->sets[0]->url;
// http://quizlet.com/6081999/lesson-4-with-catsdogs-flash-cards/

Upvotes: 19

Related Questions