从数组返回对象项

时间:2018-07-09 13:11:06

标签: php laravel

我需要遍历一个数组并返回该项目的对象的属性。

我的数组具有以下格式:

Arquivo mongodb array de links

我尝试使用以下功能解决此问题:

$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个项目或没有一个项目满足报告的信息,即总是有一个结果或没有项目。

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_maparray_filter结合使用以增强功能。