2009-12-11 13 views

उत्तर

10

क्यों न केवल इसे डाला?

$myObj = (object) array("name" => "Jonathan"); 
print $myObj->name; // Jonathan 

यदि यह बहुआयामी है, रिचर्ड Castera his blog पर निम्नलिखित समाधान प्रदान करता है:

function arrayToObject($array) { 
    if(!is_array($array)) { 
    return $array; 
    } 
    $object = new stdClass(); 
    if (is_array($array) && count($array) > 0) { 
     foreach ($array as $name=>$value) { 
     $name = strtolower(trim($name)); 
      if (!empty($name)) { 
      $object->$name = arrayToObject($value); 
      } 
     } 
     return $object; 
    } else { 
     return FALSE; 
    } 
} 
+0

सर्वोत्तम उत्तर अक्सर सबसे सरल +1 होते हैं – alex

3

यदि यह एक आयामी सरणी है, एक कच्चा काम करना चाहिए:

$obj = (object)$array; 
0

इस के लिए काम करता है मुझे

if (is_array($array)) { 
$obj = new StdClass(); 
foreach ($array as $key => $val){ 

    $key = str_replace("-","_",$key) 

    $obj->$key = $val; 
} 
$array = $obj; 
} 
,

चर के लिए नियम नामकरण

* A variable name must start with a letter or an underscore "_" 
* A variable name can only contain alpha-numeric characters and underscores (a-z, A-Z, 0-9, and _) 
* A variable name should not contain spaces. If a variable name is more than one word, it should be separated with an underscore ($my_string), or with capitalization ($myString) 

तो के बाद से इन सरणियों में अनुमति दी जाती है, यदि: php में चर नाम के भीतर अनुमति नहीं है के रूप में, साथ ही साथ - '' +०५३६९१३६३२१०

सुनिश्चित करें कि str_replace के रूप में वहाँ है उनमें से कोई भी उस सरणी से $ कुंजी में आता है जिसे आप परिवर्तित कर रहे हैं, आपको ग़लत त्रुटियां होंगी।

संबंधित मुद्दे