0

I have result like below.

   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
                    )

            )

      )

 )

I am trying to retrieve name and add them as option values for select tag.

I am expecting like below

 <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>

How can i do it in PHP? Please anyone suggest me, How retrieve each values from the above result?

Jafar Pinjar
  • 168
  • 12

2 Answers2

2

$object->Test_Result->Test is an array of objects that just have a name property. If you just want that name property, run a map on that array to convert that array to just the names.

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

Read more on array_map here.

Devon Bessemer
  • 34,461
  • 9
  • 69
  • 95
0

If your object is $obj, you can do it like this:

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>';
Mayank Kumar
  • 176
  • 1
  • 1
  • 14
  • This works, but you may want to clean up the code. No reason to use PHP/echos on the surrounding HTML and no need for $key. – Devon Bessemer Aug 16 '18 at 11:42