将对象转换为数组并在php中检索

时间:2018-08-16 11:25:21

标签: php arrays object foreach

我得到如下结果。

   stdClass Object
    (
      [Test_Result] => stdClass Object
        (
          [Test] => Array
            (
                [0] => stdClass Object
                    (

                        [name] => test1
                    )

                [1] => stdClass Object
                    (

                        [name] => test2
                    )

                [2] => stdClass Object
                    (

                        [name] => test3
                    )

                [3] => stdClass Object
                    (

                        [name] => test4
                    )

                [4] => stdClass Object
                    (

                        [name] => test5
                    )

            )

      )

 )

我正在尝试检索名称并将其添加为选择标记的选项值。

我希望像下面

 <select id="names" name="names" class="required-entry select">
                <option value="" selected="selected">Please select...</option>
                <option value="test1">test1</option>
                <option value="test2">test2</option>
                <option value="test3">test3</option>
                <option value="test4">test4</option>
                <option value="test5">test5</option>
            </select>

如何在PHP中做到这一点?请有人建议我,如何从上述结果中检索每个值?

2 个答案:

答案 0 :(得分:2)

$ object-> Test_Result-> Test是仅具有name属性的对象数组。如果只需要name属性,请在该数组上运行一个映射,以将该数组仅转换为name。

$names = array_map(function($item) {
    return $item->name;
}, $object->Test_Result->Test);

array_map上了解更多。

答案 1 :(得分:0)

如果您的对象是$obj,则可以这样操作:

echo '<select id="names" name="names" class="required-entry select">';
echo '<option value="" selected="selected">Please select...</option>';
foreach($obj->Test_Result->Test as $key => $value){
    echo '<option value="'.$value->name.'">'.$value->name.'</option>';
}
echo '</select>';