SORU
19 Mart 2010, Cuma


Nasıl bir dizi için bir nesne dönüştürebilirim?

<?php
   print_r($response->response->docs);
?>

Çıktıları aşağıdaki gibidir:

Array ( [0] => Object ( [_fields:private] => Array ( [id]=>9093 [name]=>zahir) Object ( [_fields:private] => Array ( [id]=>9094 [name]=>hussain)..)

Nasıl bir dizi bu nesneyi dönüştürebilirsiniz? Aşağıdaki çıktıyı almak istiyorum:

Array([0]=>([id]=>9093 [name]=>zahir) [1]=>([id]=>9094 [name]=>hussain)...)

Bu mümkün mü?

CEVAP
19 Mart 2010, Cuma


Tek boyutlu diziler

Tek boyutlu diziler dönüştürme için (array) kullanarak veya Benoit bahseden, get_object_vars var çevirebilirsiniz his answer.

// Cast to an array
$array = (array) $object;
// get_object_vars
$array = get_object_vars($object);

Birbirinden biraz farklı çalışıyorlar. Örneğin, get_object_vars yolunuz nesne kapsamının (nesnenin bir üye işlevi yani) içinde denir sürece, sadece kamuya açık özellikleri ile bir dizi döndürür. (array) öte yandan, elbette kamu, özel ve korunan tüm üyeleri dizi sağlam bir dizi, ama tüm halka şimdi atın.

Çok boyutlu diziler

Biraz pis bir yöntem PHP ^ kullanmaktır . = 5.2 yerel JSON JSON kodlamak için fonksiyonları ve sonra tekrar bir dizi çözmek için. Bu özel ve korunan üyeleri, ancak içermez.

// The second parameter of json_decode forces parsing into an associative array
$array = json_decode(json_encode($object), true);

Alternatif olarak, aşağıdaki işlev özel ve korunan üyeleri de dahil olmak üzere bir dizi here alınan ve döküm kullanmak için modifiye edilmiş bir nesneden dönüştürür:

function objectToArray ($object) {
    if(!is_object($object) && !is_array($object))
        return $object;

    return array_map('objectToArray', (array) $object);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Php

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • jagadambarecords

    jagadambarec

    13 AĞUSTOS 2008
  • JayzTwoCents

    JayzTwoCents

    26 AĞUSTOS 2012