我有一个CSV文件需要一些额外的处理。我已经完成了大部分自定义功能。我现在停留的是Feed的最新成员,1列中有多个类别。以下是新字段设置的快速示例。
Category01@Things~Category01@Will~Category01@Be~Category01@Here~Category02@Testing~Category02@More text here~Category02@Any data~Category02@No more data for this category~LastCategory@This~LastCategory@Is~LastCategory@The~LastCategory@End
我需要从每个可用类别中使用PHP构建一个数组,类似于;
$category01 = array('Things', 'Will', 'Be', 'Here');
非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
如果我理解您的问题和格式正确,类别由~
分隔,并且每个类别都列为"SomeString@Category Name"
,那么这应该是诀窍。但是,我不认为这与CSV格式有任何关系。
$pairs = explode('~', $string);
$cats = array();
foreach ($pairs as $pair) {
list($cat_number, $cat_name) = explode('@', $pair);
$cats[] = $cat_name;
}
答案 1 :(得分:0)
Gahhh。护目镜,他们什么都不做!
如果您无法更改该输出表单(并且应该将其更改为更好的内容),那么您将不得不蛮力:
$csv = '...';
$categories = array();
$parts = explode('~', $csv);
foreach($parts as $part) {
$bits = explode('@', $part);
$category = (int)substr($part[0], 8);
if (!is_array($categories[$category])) {
$categories[$category] = array();
}
$categories[$category][] = $part[1];
}
当然,这会让你在{csv'尾端的LastCategory
内容爆炸。所以...让我再次强烈要求你解决所有产生所谓的“csv”的问题。