我正试图在php中从这个数组中检索数据。
array(2) {
["getWysiwyg"]=>
string(37) "[{"basicsDescription":"<p><br></p>"}]"
["getGoal"]=>
string(27) "[{"iconURL":"","title":""}]"
}
我尝试了Input::get('getWysiwyg')
,它返回[{"basicsDescription":"<p><br></p>"}]
现在我如何获得值,即<p><br></p>
正如我所看到的,您的数组项是json编码的。。
试着这样解码它们:
foreach($array as $key=>$value){
$decodedValue = json_decode($value, true);
print_r($decodedValue);
}
您必须使用json_decode(),因为字符串[{"basicsDescription":"<p><br></p>"}]
表示一个带有json对象的数组。
$string = '[{"basicsDescription":"<p><br></p>"}]';
$objectArray = json_decode( $string );
$objectArray现在看起来像:
array(1) {
[0]=>
object(stdClass)#1 (1) {
["basicsDescription"]=>
string(11) "<p><br></p>"
}
}
要获得basisDescription的值,您需要访问索引为0的数组,然后您就有了对象:
$object = $objectArray[0];
一旦你得到了对象,你就可以用对象操作符->
:访问它的属性
$object->basicsDescription;// content: <p><br></p>
简称:
$string = '[{"basicsDescription":"<p><br></p>"}]';// in your case Input::get('getWysiwyg')
$objectArray = json_decode( $string );
$objectArray[0]->basicsDescription;
如果可能的话,里面有不止一个项目,你应该选择foreach
如果数组中所有表示JSON字符串的项都可以使用array_map():
$array = array(
"getWysiwyg" => '[{"basicsDescription":"<p><br></p>"}]',
"getGoal" => '[{"iconURL":"","title":""}]'
);
$array = array_map( 'json_decode' , $array );
echo "<pre>";
var_dump( $array );
这将输出:
array(2) {
["getWysiwyg"]=>
array(1) {
[0]=>
object(stdClass)#1 (1) {
["basicsDescription"]=>
string(11) "<p><br></p>"
}
}
["getGoal"]=>
array(1) {
[0]=>
object(stdClass)#2 (2) {
["iconURL"]=>
string(0) ""
["title"]=>
string(0) ""
}
}
}
解码并打印如下
$object = json_decode(Input::get('getWysiwyg'));
print $object[0]->basicsDescription;
或者直接借助于阵列去引用
print json_decode(Input::get('getWysiwyg'))[0]->basicsDescription;
将输出
<p><br></p>