如果我想在一个变量中存储不同的字符串,我可以这样做:
$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];
或者它可以更轻松地完成,我还不知道?
答案 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的类,并用这些值填充它,我假设(因为你将它们打包在一起)在某种程度上彼此相关
通过这种方式,您可以以合理的方式封装此行为和数据,并便于在整个代码中轻松重复使用。
希望这有帮助。