0

I want to echo [id] from my array foreach div, but when i run my code it only displays ";" in each div.

Here is my PHP:

<div class="hidden-navigation" style="display:none;">
    <?php foreach ($searchResultIDs as $key -> $nav) { ?>
        <div class='navigation-item'><?php echo $nav["id"]; ?></div>;
    <?php } ?>
</div>

Here is my array:

Array
(
[0] => stdClass Object
    (
        [active] => 1
        [id] => 9839
    )

[1] => stdClass Object
    (
        [active] => 
        [id] => 66150
    )

[2] => stdClass Object
    (
        [active] => 
        [id] => 66444
    )

[3] => stdClass Object
    (
        [active] => 
        [id] => 67554
    )
)
TobGr
  • 19
  • 2

4 Answers4

3

your array is stdClass Object. you should get value like this. and also -> replace with this =>

 echo $nav->id;

Complete code is:

<div class="hidden-navigation" style="display:none;">
    <?php foreach ($searchResultIDs as $nav) { ?>
        <div class='navigation-item'><?php echo $nav->id; ?></div>;
    <?php } ?>
</div>
Bilal Ahmed
  • 4,005
  • 3
  • 22
  • 42
2

Try this

<?php foreach ($searchResultIDs as $nav) { ?>
     <div class='navigation-item'><?php echo $nav->id; ?></div>;
<?php } ?>

$nav hasobjects so you can echo by using ->

Ayaz Ali Shah
  • 3,453
  • 9
  • 36
  • 68
0

The foreach syntax is wrong, it should be => instead of ->:

foreach ($searchResultIDs as $key => $nav)

Also $nav is an object, so do $nav->id instead of $nav['id'].

Paul
  • 8,974
  • 3
  • 28
  • 48
0

You can try in these different ways

Step 1:

<div class="hidden-navigation" style="display:none;">
    <?php foreach ($searchResultIDs as  $nav) { ?>
        <div class='navigation-item'><?php echo $nav["id"]; ?></div>;
    <?php } ?>
</div>

Step 2:

<div class="hidden-navigation" style="display:none;">
    <?php foreach ($searchResultIDs as $key => $nav) { ?>
        <div class='navigation-item'><?php echo $nav->id; ?></div>;
    <?php } ?>
</div>
Paul
  • 8,974
  • 3
  • 28
  • 48
Shreyas Achar
  • 1,407
  • 5
  • 36
  • 63