我在将对象 stdClass 转换为数组时遇到问题。我尝试过这种方式:
return (array) $booking;
或
return (array) json_decode($booking,true);
或
return (array) json_decode($booking);
投射前的数组满了一条记录,在我尝试投射后它是空的。如何在不删除其行的情况下转换/转换它?
转换前的数组:
array(1) { [0]=> object(stdClass)#23 (36) { ["id"]=> string(1) "2" ["name"]=> string(0) "" ["code"]=> string(5) "56/13" } }
如果我尝试生成<code>var_dump($booking),则after cast为空NULL
我也尝试过这个函数,但总是空的:
public function objectToArray($d) {
if (is_object($d)) {
// Gets the properties of the given object
// with get_object_vars function
$d = get_object_vars($d);
}
if (is_array($d)) {
/*
* Return array converted to object
* Using __FUNCTION__ (Magic constant)
* for recursive call
*/
return array_map(__FUNCTION__, $d);
}
else {
// Return array
return $d;
}
}
使用内置的类型转换功能,只需键入
$realArray = (array)$stdClass;
使用此函数可以获得您所追求的类型的标准数组。。。
return get_object_vars($booking);
如果您愿意损失一点性能,您可以使用JSON方法在一行程序中实现这一点(尽管有些人报告它比递归遍历对象更快——很可能是因为PHP调用函数的速度慢)。“但我已经做到了”你说。不完全正确-您在数组上使用了json_decode
,但您需要首先使用json_encode
对其进行编码。
json_encode
和json_decode
方法。这些在PHP5.2.0及更高版本中自动绑定。如果您使用任何旧版本,也有一个PECL库(也就是说,在这种情况下,您应该真正更新您的PHP安装。对5.1的支持在2006年停止。)
$stdClass = json_decode(json_encode($booking));
手册将json_decode
的第二个参数指定为:
assoc
当TRUE
时,返回的对象将转换为关联数组。
因此,以下行将您的整个对象转换为数组:
$array = json_decode(json_encode($booking), true);
PHP 标准库 (SPL) 随着 PHP 一起发布,提供了一组类和接口。包含了常用的数据结构类 (堆栈,队列,堆等等),以及遍历这些数据结构的迭代器,或者你可以自己实现 SPL 接口。
问题内容: 我知道PHP通常用于web开发,那里 是 没有标准的输入,但是PHP声称是可用作通用脚本语言,如果你遵循它的古怪基于web的约定。我知道PHP可以使用和打印到(或任何您想调用的东西),这很简单,但是我想知道PHP脚本如何从(特别是使用,但是任何输入函数都可以)从中获取输入,或者这甚至可能吗? 问题答案: 可以通过创建一个文件句柄来读取,然后用来读取它,例如使用一行(或者,您已经说过,使
PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。
本文向大家介绍标准PHP的AES加密算法类,包括了标准PHP的AES加密算法类的使用技巧和注意事项,需要的朋友参考一下 分享一个标准PHP的AES加密算法类,其中mcrypt_get_block_size('rijndael-128', 'ecb');,如果在不明白原理的情况下比较容易搞错,可以通过mcrypt_list_algorithms函数查看你需要的加密算法标识。 以上就是本文所述的全部内
到现在我们已经实现了我们那点唱机的一部分代码,我们看到了数组,哈希,方法,但我们还没有涉及到Ruby中其他的数据类型:数字,字符串,范围(ranges),正则表达式。下面我们就要花些时间来看看这些类型。 数字型Ruby 支持整型和浮点型两种数字类型。整型可以是任意长度(最大值由你机器的内存大小决定)。在一定范围内(通常是-230 to 230-1 or -262 to 262-1)在内部由二进制方
vector 是可变大小的数组。和 slice(切片)类似,它们的大小在编译期不可预知,但他们可以随时扩大或缩小。一个 vector 使用 3 个词来表示:一个指向数据的指针,它的长度,还有它的容量。此容量表明了分配多少内存给这 vector。vector 只要小于该容量,就可以随意增长。当临界值就要达到时,vector 会重新分配一个更大的容量。 fn main() { // 迭代器可以