unset() は指定した変数を破棄します。その結果オブジェクトではプロパティが削除され、連想配列ではその変数が削除されます Run code で検証 ※ 日本語のプロパティなので、$obj->{"手当"} というように参照します get_object_vars : 非 static プロパティを連想配列として返します
$format1 = <<<FIELD { "社員コード": "", "氏名": "", "フリガナ": "", "所属": "", "性別": "", "作成日": "", "更新日": "", "給与": "", "手当": "", "管理者": "", "生年月日": "" } FIELD; print "\n-----------------------------------"; print "\nJSON文字列\n"; print $format1; print "\n-----------------------------------"; print "\nオブジェクトに変換したもの\n"; $obj = json_decode($format1); print_r($obj); print "\n-----------------------------------"; print "\n『手当』プロパティを削除\n"; unset($obj->{"手当"}); print_r($obj); print "\n-----------------------------------"; print "\n配列に変換したもの\n"; $array = get_object_vars( $obj ); print_r( $array ); print "\n-----------------------------------"; print "\n配列の要素を削除\n"; unset($array["所属"]); print_r( $array );
実行結果
----------------------------------- JSON文字列 { "社員コード": "", "氏名": "", "フリガナ": "", "所属": "", "性別": "", "作成日": "", "更新日": "", "給与": "", "手当": "", "管理者": "", "生年月日": "" } ----------------------------------- オブジェクトに変換したもの stdClass Object ( [社員コード] => [氏名] => [フリガナ] => [所属] => [性別] => [作成日] => [更新日] => [給与] => [手当] => [管理者] => [生年月日] => ) ----------------------------------- 『手当』プロパティを削除 stdClass Object ( [社員コード] => [氏名] => [フリガナ] => [所属] => [性別] => [作成日] => [更新日] => [給与] => [管理者] => [生年月日] => ) ----------------------------------- 配列に変換したもの Array ( [社員コード] => [氏名] => [フリガナ] => [所属] => [性別] => [作成日] => [更新日] => [給与] => [管理者] => [生年月日] => ) ----------------------------------- 配列の要素を削除 Array ( [社員コード] => [氏名] => [フリガナ] => [性別] => [作成日] => [更新日] => [給与] => [管理者] => [生年月日] => )
タグ:PHP