Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php获取mongodb中最后插入的数组键?_Php_Arrays_Mongodb_Codeigniter - Fatal编程技术网

如何使用php获取mongodb中最后插入的数组键?

如何使用php获取mongodb中最后插入的数组键?,php,arrays,mongodb,codeigniter,Php,Arrays,Mongodb,Codeigniter,我有一个收藏 [_id] => 1 [user_id] => 2 [work_details] => Array ( [0] => Array ( [login_date] => 2015-12-22 [login_time] => 16:40:00 [l

我有一个收藏

[_id] => 1
    [user_id] => 2
    [work_details] => Array
        (
            [0] => Array
                (
                    [login_date] => 2015-12-22
                    [login_time] => 16:40:00
                    [log_out_time] => 
                )
            [1] => Array
                (
                    [login_date] => 2015-12-23
                    [login_time] => 11:40:00
                    [log_out_time] => 
                )

        )
对于更新,我使用以下查询

 $collect->update(array("user_id"=>(int)$user_id,"work_details.0.login_date"=>'2015-12-22'),array('$push' => array("work_details.0.log_out_time" =>$logout_time)));
所以为了更新最后一条记录,我需要知道最后一个键值

我需要更新工作的注销时间详细信息[1]。如何使用php获取mongodb中最后插入的数组键提供数组最后一个元素的值。它还将数组的内部指针移到末尾,以便在使用

它将为您提供相同元素的键

因此:

请注意,如果没有首先使用end(),key()将不会返回最后一个键。

工作代码

<?php

    $work_details = Array        (
           0 => Array
                (
                    'login_date' => '2015-12-22',
                    'login_time' => '16:40:00',
                    'log_out_time' => '',
                ),
            1 => Array
                (
                    'login_date' => '2015-12-23',
                    'login_time' => '11:40:00',
                    'log_out_time' => '', 
                )

        );

    //get last item of an array
    $last_item = end($work_details);

    //set pointer to fist item
    reset($work_details);

    $last_item_key = null;

    //compare value of last item with all values of an array, if found equal, return that key
    foreach($work_details as $key => $value) {

        if($value === $last_item) {
            $last_item_key = $key;
            break;    
        }

    }

    echo $last_item_key;


?>


如何在mongodbYou中实现这一点你说“为了更新最后一条记录,我需要知道最后一个键值”,你在你的work\u details数组中使用这个方法来获取它的最后一个键值。运行
$last\u item=end($work\u details)后,您似乎已经拥有了所需的其余部分只需使用
$last\u item\u key=key($work\u details)
。不需要循环和搜索。看到我的答案了吗
<?php

    $work_details = Array        (
           0 => Array
                (
                    'login_date' => '2015-12-22',
                    'login_time' => '16:40:00',
                    'log_out_time' => '',
                ),
            1 => Array
                (
                    'login_date' => '2015-12-23',
                    'login_time' => '11:40:00',
                    'log_out_time' => '', 
                )

        );

    //get last item of an array
    $last_item = end($work_details);

    //set pointer to fist item
    reset($work_details);

    $last_item_key = null;

    //compare value of last item with all values of an array, if found equal, return that key
    foreach($work_details as $key => $value) {

        if($value === $last_item) {
            $last_item_key = $key;
            break;    
        }

    }

    echo $last_item_key;


?>