تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ Mehdi Yaqoubi
تبدیل آرایه assoc به stdClass object
جامعه پی اچ پی ایجاد شده در ۱۵ دی ۱۳۹۸

با سلام خدمت استاد صالحی عزیز.

وقتی  که با تابع json_decode آرایه json رو به stdClass object تبدیل می‌کنیم اعضا به این صورت در خروجی چاپ میشه: 

stdClass Object ( [1] => stdClass Object ( [name] => ..

ولی وقتی که به صورت مستقیم آرایه رو به stdClass object  تدیل می‌کنیم خروجی به این صورته:

stdClass Object ( [1] => Array ( [name] =>...

و توی این حالت وقتی از دستور echo وقتی میخوایم عضوی رو چاپ کنیم خطا دریافت میشه»
 

echo ($usersToObjects->{1}->name->firstName);

از حالت اول هم که برای آرایه‌های assoc استفاده کنیم بازم خطا دریافت میشه.

 

ممنون میشم در این مورد راهنمایی کنید.

 

با تشکر

json_decode تمام ساختار رشته دریافتی و ساختارهای تودرتوی داخل اون رو هم تبدیل می‌کنه ولی وقتی صرفا با Cast کردن نوع یک آرایه رو عوض می‌کنی الزاما برای عناصر درون اون آرایه اگر آرایه باشن اتفاقی نمی‌فته و تبدیلی صورت نمی‌گیره.

لقمان آوند ۱۵ دی ۱۳۹۸، ۲۱:۰۶

روش‌های مختلف تست کردم همشون خطا دریافت کرد ولی ظاهرا آخرش درست شد:

stdClass Object
(
    [1] => Array
        (
            [name] => hamid
            [email] => hamid@gmail.com
            [username] => hamid334
        )

با این دستور انجام شد:

echo $users->{1}["email"];

اگه روش به همین صورته یا روش دیگری هم وجود داره راهنمایی کنید ممنون میشم.

با تشکر

Mehdi Yaqoubi ۱۵ دی ۱۳۹۸، ۲۱:۵۷