是否可以将数组存储在一个变量中,以后再使用Explode?

时间:2012-02-23 10:59:30

标签: php arrays

如果我想在一个变量中存储不同的字符串,我可以这样做:

$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];

或者它可以更轻松地完成,我还不知道?

6 个答案:

答案 0 :(得分:2)

序列化和反序列化整个交易可能更容易,如下所示:

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

那就是说,我不明白你为什么要那样做。

答案 1 :(得分:1)

我认为你应该使用serialize

  

生成值的可存储表示

     

这对于存储或传递PHP值而不会丢失非常有用   他们的类型和结构。

     

要将序列化字符串再次转换为PHP值,请使用   反序列化()。

答案 2 :(得分:0)

你可以使用 implode ()函数来制作字符串。稍后您可以使用 explode ()将其转换回数组。

答案 3 :(得分:0)

你不能这样做。 但是你可以将你的数组存储在一个像这样的大数组中

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

现在,您可以致电$array2

访问$everything[1]

答案 4 :(得分:0)

您应该使用serialize和unserialize来执行此操作,而不是自己加入字符串。

基于您的示例的Cos。你将无法处理分号中的值。

序列化功能将很好地为您解决所有这些问题,因此您无需关心它们。

答案 5 :(得分:0)

为了稍微进一步解释这些答案,这里的一个好选择可能是构造一个实现\ Serializable的类,并用这些值填充它,我假设(因为你将它们打包在一起)在某种程度上彼此相关

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

希望这有帮助。