我需要遍历一个数组并返回该项目的对象的属性。
我的数组具有以下格式:
我尝试使用以下功能解决此问题:
$HOME/GoLandProjects/{myproject}
并打电话给她使用:
public function returnObjectByDayAndTrip ($ links, $ trip, $ dayOperation)
{
$ newArray = array_filter ($ links, function ($ obj) use ($ trip, $ dayOperation) {
if ($ obj ['trip'] == $ trip && $ obj ['dayOperation'] === $ dayOperation) {
return true;
} else {
return false;
}
});
if (isset ($ newArray [0])) {
return $ newArray [0] ['url'];
} else {
return null;
}
}
$link-> week = $ this-> returnObjectByDayAndTrip ($ links, $ trip, 'week');
是我的图像数组,$links
是我需要的一天,'week'是我需要的一天。
我的错误发生在例如项目是数组的[3]时,当它是第一个时,一切都从位置1开始起作用。
我以$trip
返回的报酬是
object(stdClass)#632(4){[“”周“] =>字符串(77)” / horario-de-onibus-010-bela-vista-santa-ruth-destino-santa-ruth-em- dias-uteis“ [”星期六“] => NULL [”星期日“] => NULL [” changeDestiny“] => NULL}
var_dump
我需要根据传递给函数的特殊性返回对象的url。在我的数组中,必定只有1个项目或没有一个项目满足报告的信息,即总是有一个结果或没有项目。
答案 0 :(得分:0)
我能够使用current ()
进行解析,它返回数组的第一个位置,因此看起来像这样:
public function returnObjectByDayAndTrip ($ links, $ trip, $ dayOperation)
{
$ newArray = array_filter ($ links, function ($ obj) use ($ trip, $ dayOperation) {
if ($ obj ['trip'] == $ trip && $ obj ['dayOperation'] === $ dayOperation) {
return true;
} else {
return false;
}
});
if (count ($ newArray)> = 1) {
return current ($ newArray) ['url'];
} else {
return null;
}
}
也许有更好的方法可以做到这一点,我什至接受这种新方法,但是这种方法可以解决我的问题。这里的理想选择是与array_map
和array_filter
结合使用以增强功能。