有没有像PHP中的array_shift那样获取/删除第一个对象项



我用mysqli->fetch_object()在PHP中检索数据。如何获取第一个项并将其从对象中删除,就像array_shift对数组所做的那样?如何在stdClass上模拟array_pop

类似于:

# $object contains 4 items
$first=$object->shift();
$last=$object->pop();
# $object contains 2 items

最好不需要其他库,也不需要对象和数组之间的转换。

这将使您从对象属性列表中获得第一个密钥

https://www.php.net/manual/en/function.get-object-vars.php

$object = new stdClass();
$object->aaa = 'AAA';
$object->bbb = 'BBB';
$object->ccc = 'CCC';
if( empty( $vars = get_object_vars( $object ) ) === false )
{
$firstKey = current( array_keys( $vars ) );
$get = $object->$firstKey; // To get
unset( $object->$firstKey ); // To remove
var_dump( $get );
}
var_dump( $object );

https://3v4l.org/BmpJ6

string(3) "AAA"
object(stdClass)#1 (2) {
["bbb"]=>
string(3) "BBB"
["ccc"]=>
string(3) "CCC"
}

在上面的代码中,我们使用了一组密钥current( array_keys( $vars ) ),如果你想要第一个或最后一个密钥,你可以用end替换current,同样你也可以使用array_shiftarray_pop

最新更新