php - html tags




كيفية الوصول إلى خاصية كائن(عنصر stdClass) عضو/عنصر صفيف؟ (4)

جرب هذا ، تعمل بشكل جيد -

$array = json_decode(json_encode($array), true);

هذا السؤال لديه بالفعل إجابة هنا:

عند إجراء print_r() على print_r() أحصل على ما يلي:

Array ( 
    [0] => 
        stdClass Object 
        ( 
            [id] => 25 
            [time] => 2014-01-16 16:35:17 
            [fname] => 4 
            [text] => 5 
            [url] => 6 
        ) 
)

كيف يمكنني الوصول إلى قيمة محددة في الصفيف؟ التعليمة البرمجية التالية لا يعمل بسبب كائن stdClass

echo $array['id'];

جرب هذا:

echo $array[0]->id;

للوصول إلى عضو في الصفيف ، تستخدم $array['KEY'];

للوصول إلى عضو كائن تستخدم $obj->KEY;

للوصول إلى عضو كائن داخل مجموعة من الكائنات:
$array[0] // الحصول على الكائن الأول في الصفيف
$array[0]->KEY // ثم الوصول إلى مفتاحه

يمكنك أيضًا تنفيذ حلقة فوق مجموعة من الكائنات مثل:

foreach ($arrayOfObjs as $key => $object) {
    echo $object->object_property;
}

فكر في مجموعة كمجموعة من الأشياء. إنها حقيبة يمكنك من خلالها تخزين الأشياء الخاصة بك ومنحها معرفًا فريدًا (مفتاحًا) والوصول إليها (أو إخراج الأشياء من الحقيبة) باستخدام هذا المفتاح. أريد أن أبقي الأمور بسيطة هنا ، ولكن يمكن أن تحتوي هذه الحقيبة على حقائب أخرى أيضًا :)

تحديث (قد يساعد هذا شخص ما على فهم أفضل):

يحتوي الصفيف على أزواج " key " و " value ". يعتبر توفير مفتاح لعضو صفيف أمرًا اختياريًا ، وفي هذه الحالة يتم تعيين مفتاح رقمي تلقائيًا يبدأ بـ 0 ويستمر في الزيادة بمقدار 1 لكل عضو إضافي. يمكننا استرداد "قيمة" من الصفيف بواسطة " key ".

حتى نتمكن من تحديد مجموعة بالطرق التالية (فيما يتعلق بالمفاتيح):

الطريقة الأولى:

$colorPallete = ['red', 'blue', 'green'];

سيتم تعيين الصفيف أعلاه مفاتيح رقمية تلقائيًا. سيكون المفتاح المخصص للأحمر هو 0 ، للأزرق 1 وما إلى ذلك.

الحصول على القيم من الصفيف أعلاه:

$colorPallete[0]; // will output 'red'
$colorPallete[1]; // will output 'blue'
$colorPallete[2]; // will output 'green'

الطريقة الثانية:

$colorPallete = ['love' => 'red', 'trust' => 'blue', 'envy' => 'green']; // we expliicitely define the keys ourself.

الحصول على القيم من الصفيف أعلاه:

$colorPallete['love']; // will output 'red'
$colorPallete['trust']; // will output 'blue'
$colorPallete['envy']; // will output 'green'

ماذا عن شيء مثل هذا.

function objectToArray( $object ){
   if( !is_object( $object ) && !is_array( $object ) ){
    return $object;
 }
if( is_object( $object ) ){
    $object = get_object_vars( $object );
}
    return array_map( 'objectToArray', $object );
}

واستدعاء هذه الوظيفة مع كائن الخاص بك

$array = objectToArray( $yourObject );

reference





stdclass