【发布时间】:2011-02-09 16:00:04
【问题描述】:
+2-1+18*+7-21+3*-4-5+6x29
上面的字符串是我尝试拆分为 key => value 数组或类似字符串的示例。该字符串用于表示内网站点三栏页面上各种类的布局,用户可以通过拖放对其进行编辑。此字符串存储在 cookie 中以供下次访问时使用。
数字代表类的id,-、+和x代表类的状态(最小化、展开或隐藏),*代表分栏。
我可以使用explode轻松将其拆分为列,它给出了3个$key => $value关联的数组。
例如。
$column_layout = array( [0] => '+2-1+18' , [1] => '+7-21+3' , [2] => '-4-5+6x29' )
然后我需要从那里将其拆分为各个类,将状态和 id 保持在一起。由于不同的类和状态会因用户而异,以及每列有多少,所以我需要能够自动完成这一切。
$column1 = array(
array( '+' , 2 ),
array( '-' , 1 ),
array( '+' , 18 )
);
$column2 = array(...
【问题讨论】:
-
抱歉,澄清一下,我需要能够自动执行此操作。我应该提供更多关于如何使用它的信息,我现在已经完成了。
-
澄清一下:
$column1 = array( '+' => 2 , '-' => 1 , '+' => 18 )是不可能的结果,因为同一数组/子数组中的两个键可能不相同。 -
我看到您的示例字符串有 3 个部分,由两个星号分隔。总是有3个部分吗?每个部分是否总是有 3 组值?
-
这是我在 10 年后重读这篇文章后注意到的第一件事 ????很高兴知道这些年来我至少略有改善。老实说,我现在不记得这是什么了,我想当时它仅限于三个部分,但在每个部分中处理任意数量的部分和值可能是有意义的。我
-
Tbh,这可能是关于 SO 的一个过于具体的问题,而且标题也有点误导,但是哦,好吧,那时我对整个事情还比较陌生 ????
标签: php arrays string text-parsing formatted-input