phpにて、object(オブジェクト)のプロパティを完全に配列(文字列など)に変換したい

オブジェクトのプロパティを完全に配列に変えたい時は

get_object_vars()

を使う。

simplexml_load_string()でオブジェクトを返すのが不便だったので。。

$xmlData  <<< END 
<Holiday>
  <Row>
   <Date>2000/1/1</Date>
   <Year>2000</Year>
   <Month>1</Month>
   <Day>1</Day>
   <Week1></Week1>
   <Week2>Sat</Week2>
   <Name1>元日</Name1>
   <Name2>New Year's Day</Name2>
  </Row>
</Holiday>
END;

$objData = simplexml_load_file($xmlData);

var_dump($objData);
を使うと

object(SimpleXMLElement)#41 (8) {
  ["Date"]=>
  string(8) "2000/1/1"
  ["Year"]=>
  string(4) "2000"
  ["Month"]=>
  string(1) "1"
  ["Day"]=>
  string(1) "1"
  ["Week1"]=>
  string(3) "土"
  ["Week2"]=>
  string(3) "Sat"
  ["Name1"]=>
  string(6) "元日"
  ["Name2"]=>
  string(14) "New Year's Day"
}

var_dump(get_object_vars($objData));
を使うと

array(8) {
  ["Date"]=>
  string(8) "2000/1/1"
  ["Year"]=>
  string(4) "2000"
  ["Month"]=>
  string(1) "1"
  ["Day"]=>
  string(1) "1"
  ["Week1"]=>
  string(3) "土"
  ["Week2"]=>
  string(3) "Sat"
  ["Name1"]=>
  string(6) "元日"
  ["Name2"]=>
  string(14) "New Year's Day"
}