从php中的数组检索数据


Retrieving data from array in php

我正试图在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>