从数组Laravel PHP获取数组的值

时间:2017-07-21 18:22:44

标签: php laravel laravel-5

我在laravel中制定了一个时间表,我需要知道其他表的值,在这种情况下我得到属性,然后我从表属性中的外键中保存数组中的句点,稍后我在表格期间需要“日期”的值,但是当我得到日志时,我得到了这个。

[2017-07-21 18:11:50] local.INFO: [{"id":5,"title":"Hola","date":"2017-07-25"}] 
[2017-07-21 18:11:50] local.INFO: [{"id":4,"title":"dsfsd","date":"2017-07-26"}]
[2017-07-21 18:11:50] local.INFO: [{"id":4,"title":"dsfsd","date":"2017-07-26"}]
[2017-07-21 18:11:50] local.INFO: [{"id":4,"title":"dsfsd","date":"2017-07-26"}]

我无法使用$ v-> {“id”},$ v-> id,$ v [“id”]访问索引,我不知道是否是我保存信息的方式约会,这是我的功能,谢谢。

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {

        $properties = DB::table( 'properties' )->where( 'status', '=', 1 )->whereNotNull( 'id_client' )->whereNotNull( 'id_period' )->get();

        $dates = array();

        foreach ($properties as $k => $v) {
            $dates[$k] = DB::table( 'periods' )->where( 'id', '=', $v->id_period )->whereDate('date', '>', date('Y-m-d'))->get();
        }

        $properties_status = array();

        /* ----- HERE ---------*/
        foreach ($dates as $v) {
            Log::info($v);
        }


    })->everyMinute();
}

3 个答案:

答案 0 :(得分:1)

你应该json_decode($v)所以你可以像对待结构一样对待它。否则它只是你的一个字符串。

答案 1 :(得分:1)

这是JSON。它是一种数据格式。您可以使用以下方法在PHP中对其进行解码:

$var = json_decode($v, true);

$var中你会得到一个正常的数组。您可以使用print_r($var);进行简单检查。

<强>手册

PHP: json_decode

答案 2 :(得分:0)

DB::table()->get()会返回一个集合,因此可以使用:

Log::info($v->id);