以stdClass对象数组形式解析数组

时间:2018-11-05 06:09:17

标签: php arrays

Array(
    [0] => stdClass Object(
        [key] => VALID
        [value] => Y
    )
    [1] => stdClass Object(
        [key] => YEAR
        [value] => 2018 
    )
)

我需要解析Array并使用VALID和YEAR的值。试图将for循环用作键值对。由于每个循环都具有多个键值对,所以我不知道继续。

foreach($value as $key1 => $value1) {
  print_r($value1); 
}

这是用于显示以上数据的代码。

我尝试过:

foreach($value as $key1 => $value1) {
  foreach($value1 as $key2 => $value2) {
       print_r($value2);
  } 
}

输出为:VALIDYYEAR2018

foreach($value as $key1 => $value1) {
  foreach($value1 as $key2 => $value2) {
       print_r($key2);
  } 
}

输出为:keyvaluekeyvalue

2 个答案:

答案 0 :(得分:1)

您可以根据数据创建一个数组,键分别为VALIDYEAR,并带有相应的值:

$value = array((object)['key' => 'VALID', 'value' => 'Y'], 
               (object)['key' => 'YEAR', 'value' => 2018]);
$data = array();
foreach ($value as $v) {
    $data[$v->key] = $v->value;
}
print_r($data);

输出

Array ( 
    [VALID] => Y
    [YEAR] => 2018 
)

Demo

答案 1 :(得分:1)

print_r输出未显示您需要“解析”的“数组形式”;它向您显示您有两个对象,您要访问它们的properties

访问这些属性将如下所示:

foreach ( $list as $item ) {
    // $item is an object with two properties
    $key = $item->key;
    $value = $item->value;
    // Do whatever you need with those two properties
}