在php中从数组中检索数据

时间:2015-11-18 13:04:09

标签: php arrays

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

3 个答案:

答案 0 :(得分:1)

我看到你的数组项是json编码..

尝试解码它们:

foreach($array as $key=>$value){
    $decodedValue = json_decode($value, true);
    print_r($decodedValue);
}

答案 1 :(得分:1)

您必须使用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>"
    }
}

要获取 basicsDescription 的值,您需要在索引为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) ""
    }
  }
}

答案 2 :(得分:0)

解码并打印如下

$object = json_decode(Input::get('getWysiwyg'));
print $object[0]->basicsDescription;

或直接借助数组解除引用

print json_decode(Input::get('getWysiwyg'))[0]->basicsDescription;

将输出

<p><br></p>