2012-02-23 70 views
0

如果我想不同的字符串存储在一个变量,我可以做到这一点:是否可以将数组存储在一个变量中并在以后使用它们的爆炸?

$everything = $something.';'.some.';'.data1; 

如果我想拥有它放回相同的结构,我可以那样做:

$everything = explode (';', $everything); 
$something = $everything[0]; 
$some = $everything[1]; 
$data1 = $everything[2]; 

问题是:这是可能存储一个数组值,像上面提到的相同的方式,并在以后使用explode

$everything = $array1[].';'.somearray[].';'.data_array1[]; 
$everything = explode (';', $everything); 
$array1[] = $everything[0]; 

或者它可以在我还不知道的更简单的情况下完成?

回答

2

可能更容易序列化和反序列化整个交易,像这样你$array2访问:

$everything = serialize(array($array1, $somearray, $data_array1)); 
list($array1, $somearray, $data_array1) = unserialize($everything); 

这就是说,我不明白你为什么想这样做。

1

我认为你应该使用serialize

生成一个值

这是用于储存或传递PHP的值,而不会丢失 其类型和结构的可存储表示。

要使序列化的字符串再次变为PHP值,请使用 unserialize()。

0

您可以使用implode()函数使字符串。并且稍后您可以使用爆炸()将其转换回阵列。

0

你不能那样做。 但是你可以在一个大的阵列存储您的阵列这样

$everything=Array(); 
$everything[]=$array1; 
$everything[]=$array2; 
$everything[]=$array3; 

现在你可以通过调用$everything[1]

0

你应该使用serialize和unserialize来做到这一点,而不是自己加入字符串。

基于你的例子。你将无法用分号处理值。

序列化函数将很好地为你逃脱所有这些,所以你不需要关心它们。

0

为了进一步回答这些问题,这里的一个好的选择可能是构建一个实现\ Serializable的类,并使用这些值来填充它(我们假设你将它们打包在一起)与某个另一个。

通过这种方式,您可以以合理的方式封装此行为和数据,并便于在整个代码中轻松地重复使用。

希望这会有所帮助。

相关问题