PHP将数组转换为适合用作数组键的序列化字符串


PHP convert array to serialized string suitable as an array key

我在PHP中有几个关联数组,如下所示:

$data1 = array("foo" => "one", "animal" => "mice");
$data2 = array("foo" => "two", "animal" => "cats");
....

我想创建另一个关联数组,使用前面数组的序列化值作为数组键。例如:

$newArray = array("data1's serialized key" => "someNewValue", ... );

序列化数组是否适合用作数组键?

它们是否包含任何不可接受的字符?

我是否需要对序列化字符串做更多的操作,使其作为数组键可以接受(同时保持其唯一性)?

序列化数组是否适合用作数组键?

是的!据我所知,您可以将序列化数组用作另一个数组中的键。但是,我想不出任何使用案例。:P

它们是否包含任何不可接受的字符?

否,除非在原始数组中指定了任何不可接受的字符。

我是否需要对序列化字符串做更多的操作,使其作为数组键可以接受(同时保持其唯一性)?

没有。

所以,你的代码看起来像:

$data1 = array("foo" => "one", "animal" => "mice");
$data2 = array("foo" => "two", "animal" => "cats");
$serializedArrayKey1 = serialize($data1);
$serializedArrayKey2 = serialize($data2);
$newArray = array($serializedArrayKey1 => "Value for data1", ...);