PHP loop through array of stdClass object
Asked Answered
V

2

5

I have a query that I run in MySQL and it returns a result as an stdClass object as following :

array(8){
  [
    0
  ]=>object(stdClass)#36(1){
    [
      "color"
    ]=>string(7)"#a0a0a0"
  }[
    1
  ]=>object(stdClass)#35(1){
    [
      "color"
    ]=>string(7)"#e0e0e0"
  }[
    2
  ]=>object(stdClass)#30(1){
    [
      "color"
    ]=>string(7)"#f0f0f0"
  }[
    3
  ]=>object(stdClass)#37(1){
    [
      "color"
    ]=>string(7)"#f0f0f1"
  }[
    4
  ]=>object(stdClass)#34(1){
    [
      "color"
    ]=>string(7)"#404040"
  }[
    5
  ]=>object(stdClass)#38(1){
    [
      "color"
    ]=>string(7)"#c0c0c0"
  }[
    6
  ]=>object(stdClass)#39(1){
    [
      "color"
    ]=>string(7)"#e06080"
  }[
    7
  ]=>object(stdClass)#40(1){
    [
      "color"
    ]=>string(7)"#e06082"
  }
}

I would like to get the colors values. How can I loop through this object and get each hex color to store in an array?

Vaasa answered 1/5, 2014 at 15:50 Comment(7)
possible duplicate of stdClass object and foreach loopsLibelee
foreach ($array as $obj) { echo $obj->color; }Argentic
@JamieTaylor That question bears no resemblance to this one and the solutions won't help.Pentahedron
@MichaelBerkowski How so? they both seem to be similar to me. The most upvoted answer explains the foreach loop within stdClass objects well too. Apologies for my confusion.Libelee
Why put your data into that data array of objects structure at all? I think I would just query the data and load values your are interested in into a numerically indexed array from the start.Vite
@JamieTaylor This requires a loop on the outer array. It's really just a matter of the OP not understanding the data structure.Pentahedron
@MichaelBerkowski I suppose, I would argue it's still quite a similar solution.Libelee
P
7

Easy enough. Loop through the array and access the object and the color property and assign it to a new array element:

foreach($array as $object) {
    $colors[] = $object->color;
}
Postmark answered 1/5, 2014 at 15:54 Comment(0)
H
1

You should be able to use a foreach loop and iterate through the array. Since each array element is an object you can do it like so:

$array = //results from query    
foreach($array as $obj) {
    echo $obj->color;
}
Housekeeper answered 1/5, 2014 at 15:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.