我有一个像这样的JSON对象:
array(1) {
["records"]=>
array(2) {
[0]=>
array(6) {
["ID"]=>
string(1) "1"
["Subject"]=>
string(9) "algorithm"
["Object"]=>
string(7) "program"
["Predicate"]=>
string(3) "isa"
["Count"]=>
string(1) "1"
["Source"]=>
string(14) "Basic instinct"
}
[1]=>
array(6) {
["ID"]=>
string(1) "2"
["Subject"]=>
string(18) "Amazing Pillow 2.0"
["Object"]=>
string(3) "199"
["Predicate"]=>
string(40) "The best pillow for amazing programmers."
["Count"]=>
string(2) "-1"
["Source"]=>
string(2) "in"
}
}
}
如果Subject具有单词“ algorithm”,我想将每个数组的Subject值推到一个新数组。我正在写这样的php代码:
foreach($data as $row => $value) {
foreach($value as $row2 => $value2){
if(in_array("algorithm", $value2->Subject)) {
array_push($result, $value2);
}
else { array_push($result, "no record");}
}
}
但是,它看起来是空的,我不知道为什么。如果有人可以帮忙,我会很高兴。谢谢。
答案 0 :(得分:1)
您的数组为3级 因此,或者您开始使用$ data ['records']或使用3级foreach
foreach($data['records'] as $row => $value) {
foreach($value as $row2 => $value2){
if(in_array("algorithm", $value2->Subject)) {
array_push($result, $value2);
}
else { array_push($result, "no record");}
}
}
答案 1 :(得分:0)
我会这样循环数组:
foreach($data['records'] as $record) {
if($record["Subject"] == "algorithm")
array_push($result, $record);
else
array_push($result, "no record");
}
让我知道这是否是您想要实现的目标。
答案 2 :(得分:0)
$ value2->主题不是数组而是字符串。因此in_array()不匹配。
如果您只是在foreach循环检查内,它是否有效? 如果($ value2-> Subject ===“ algorithm”) ?