Assuming the array you are searching is called $lessons
:
$result = array();
foreach ($lessons as $lesson) {
if ($lesson->Level->Name === 'Absolute Beginner') {
$result[] = $lesson;
break;
}
}
var_dump($result);
Question
ok I have the following:
[0]=>
object(stdClass)#1026 (9) {
["Level"]=>
object(stdClass)#1027 (2) {
["ID"]=>
int(1)
["Name"]=>
string(17) "Beginner"
}
["ID"]=>
int(1)
["Name"]=>
string(23) "Salsa - Beginner/Novice"
["Description"]=>
string(47) "Learn fun and easy basics for Salsa."
["Prereq"]=>
string(37) "No prior lessons required."
["Notes"]=>
string(0) ""
["LastUpdated"]=>
string(22) "2012-11-30T18:57:29.91"
["Program"]=>
object(stdClass)#1028 (3) {
["ID"]=>
int(22)
["Name"]=>
string(13) "Group Classes"
["ScheduleType"]=>
string(6) "DropIn"
}
["SessionType"]=>
object(stdClass)#1029 (4) {
["DefaultTimeLength"]=>
NULL
["ProgramID"]=>
int(22)
["ID"]=>
int(6)
["Name"]=>
string(19) "Social Group Lesson"
}
}
[1]=>
object(stdClass)#1030 (9) {
["Level"]=>
object(stdClass)#1031 (2) {
["ID"]=>
int(1)
["Name"]=>
string(17) "Absolute Beginner"
}
["ID"]=>
int(2)
["Name"]=>
string(26) "Two Step - Beginner/Novice"
["Description"]=>
string(51) "Learn fun & easy basics for Two Step"
["Prereq"]=>
string(37) "No prior lessons required."
["Notes"]=>
string(0) ""
["LastUpdated"]=>
string(22) "2012-11-30T19:02:40.29"
["Program"]=>
object(stdClass)#1032 (3) {
["ID"]=>
int(22)
["Name"]=>
string(13) "Group Classes"
["ScheduleType"]=>
string(6) "DropIn"
}
["SessionType"]=>
object(stdClass)#1033 (4) {
["DefaultTimeLength"]=>
NULL
["ProgramID"]=>
int(22)
["ID"]=>
int(6)
["Name"]=>
string(19) "Social Group Lesson"
}
}
[3]=>
object(stdClass)#1030 (9) {
["Level"]=>
object(stdClass)#1031 (2) {
["ID"]=>
int(1)
["Name"]=>
string(17) "Absolute Beginner"
}
["ID"]=>
int(2)
["Name"]=>
string(26) "Two Step - Beginner/Novice"
["Description"]=>
string(51) "Learn fun & easy basics for Two Step"
["Prereq"]=>
string(37) "No prior lessons required."
["Notes"]=>
string(0) ""
["LastUpdated"]=>
string(22) "2012-11-30T19:02:40.29"
["Program"]=>
object(stdClass)#1032 (3) {
["ID"]=>
int(22)
["Name"]=>
string(13) "Group Classes"
["ScheduleType"]=>
string(6) "DropIn"
}
["SessionType"]=>
object(stdClass)#1033 (4) {
["DefaultTimeLength"]=>
NULL
["ProgramID"]=>
int(22)
["ID"]=>
int(6)
["Name"]=>
string(19) "Social Group Lesson"
}
}
[4]=>
object(stdClass)#1030 (9) {
["Level"]=>
object(stdClass)#1031 (2) {
["ID"]=>
int(1)
["Name"]=>
string(17) "Absolute Beginner"
}
["ID"]=>
int(2)
["Name"]=>
string(26) "Two Step - Beginner/Novice"
["Description"]=>
string(51) "Learn fun & easy basics for Two Step"
["Prereq"]=>
string(37) "No prior lessons required."
["Notes"]=>
string(0) ""
["LastUpdated"]=>
string(22) "2012-11-30T19:02:40.29"
["Program"]=>
object(stdClass)#1032 (3) {
["ID"]=>
int(22)
["Name"]=>
string(13) "Group Classes"
["ScheduleType"]=>
string(6) "DropIn"
}
["SessionType"]=>
object(stdClass)#1033 (4) {
["DefaultTimeLength"]=>
NULL
["ProgramID"]=>
int(22)
["ID"]=>
int(6)
["Name"]=>
string(19) "Social Group Lesson"
}
}
how do i traverse this into the ["Name"]=> string(17) "Absolute Beginner"
check if the value is "Absolute Beginner" and if it is return the whole array IE the:
[4]=>
object(stdClass)#1030 (9) {
["Level"]=>
object(stdClass)#1031 (2) {
["ID"]=>
int(1)
["Name"]=>
string(17) "Absolute Beginner"
}
["ID"]=>
int(2)
["Name"]=>
string(26) "Two Step - Beginner/Novice"
["Description"]=>
string(51) "Learn fun & easy basics for Two Step"
["Prereq"]=>
string(37) "No prior lessons required."
["Notes"]=>
string(0) ""
["LastUpdated"]=>
string(22) "2012-11-30T19:02:40.29"
["Program"]=>
object(stdClass)#1032 (3) {
["ID"]=>
int(22)
["Name"]=>
string(13) "Group Classes"
["ScheduleType"]=>
string(6) "DropIn"
}
["SessionType"]=>
object(stdClass)#1033 (4) {
["DefaultTimeLength"]=>
NULL
["ProgramID"]=>
int(22)
["ID"]=>
int(6)
["Name"]=>
string(19) "Social Group Lesson"
}
}
and save it into a new array... this is driving me mad any help is much appriciated.. so far i have:
foreach ($resultTest as $key => $value) {
# code...
foreach ($value as $keysub => $valuesub) {
# code...
if(is_object($valuesub)){
foreach ($valuesub as $keysubsub => $valuesubsub) {
# code...
echo "<br>";
echo $keysubsub;
}
}else{
// echo "<br>";
// echo $keysub;
}
}
}
but I'm getting lost on a foreach that deep...
Solution
Assuming the array you are searching is called $lessons
:
$result = array();
foreach ($lessons as $lesson) {
if ($lesson->Level->Name === 'Absolute Beginner') {
$result[] = $lesson;
break;
}
}
var_dump($result);