这可能太明显了,但我现在有点脑死亡。
$sizeArr = array({
"name"=>'18"x24"',"wd"=>18,"ht"=>24,"price"=>99.00
},
{
"name"=>'24"x36"',"wd"=>24,"ht"=>36,"price"=>189.00
});
我想访问它像$sizeArr[0]->name
,但我得到一个错误说Unexpected {
。
我做错了什么?
你不能使用{}
来定义对象在PHP像你会在JavaScript(我假设你熟悉)。
在PHP对象和数组都是array
-是的,这确实给问题,如果你序列化到JSON。
:
$sizeArr = array(array(
"name"=>'18"x24"',"wd"=>18,"ht"=>24,"price"=>99.00
),
array(
"name"=>'24"x36"',"wd"=>24,"ht"=>36,"price"=>189.00
));
你必须转换你的数组:
$yourArray = array (
'item1' => 'Apple',
'item2' => 'Peach'
);
$p = (object) $yourArray;
print $p->item1;
多维数组,请看这里:http://www.richardcastera.com/blog/php-convert-array-to-object-with-stdclass
你不能使用{}
但是你可以试试这个
(object)
用于将array
转换为object
$sizeArr = array(
(object)array(
"name"=>'18"x24"',"wd"=>18,"ht"=>24,"price"=>99.00
),
(object)array(
"name"=>'24"x36"',"wd"=>24,"ht"=>36,"price"=>189.00
)
);
echo $sizeArr[0]->name;
$sizeArr
structure print_r($sizeArr);
output
Array
(
[0] => stdClass Object
(
[name] => 18"x24"
[wd] => 18
[ht] => 24
[price] => 99
)
[1] => stdClass Object
(
[name] => 24"x36"
[wd] => 24
[ht] => 36
[price] => 189
)
)
输出:18"x24"
$sizeArr = array(
(object)array("name"=>'18"x24"',"wd"=>18,"ht"=>24,"price"=>99.00),
(object)array("name"=>'24"x36"',"wd"=>24,"ht"=>36,"price"=>189.00)
);
$sizeArr[0]->name;