【问题标题】:Transforming user input into a list array in PHP在 PHP 中将用户输入转换为列表数组
【发布时间】:2011-03-23 16:50:32
【问题描述】:

我有一个 textarea 字段。输出将是一个 HTML 列表。每行将是一个新的列表项。如果用户输入连字符 ('-'),则列表项将被嵌套

Sample
test1
te-st2
-test3
-test4
--test5
--test6
-test7
test8
-test9
test10

Output should be
Array (test1, 
       te-st2,
       array(test3, 
             test4,
             array(test5, test6),
             test7
       ),
      test8,
      array(test9),
      test10

我不担心关键值。 然后我从http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_item_list 运行theme_item_list 创建列表

【问题讨论】:

  • 这个列表会只列到3还是n?

标签: php arrays list


【解决方案1】:

试试这个(这还没有经过测试,所以可能需要稍微调整一下):

 $sample = "test1
te-st2
-test3
-test4
--test5
--test6
-test7
test8
-test9
test10"

$arr = explode("\n",$sample);
foreach($arr as $key=>$val){
    if($val[0] == '-'){
        unset($val[0]);
        if($val[1] == '-'){
            unset($val[0]);
            unset($arr[$key]);
            $arr[$key-1][] = $val;
        }
        else {
            $arr[$key] = array($val);
        }      
    }
}

【讨论】:

  • 是的。对不起。你必须使用第一个字母的字符串替换而不是那个。正如我上面所说,这没有经过严格测试
猜你喜欢
  • 2015-08-29
  • 2020-01-05
  • 1970-01-01
  • 2011-03-19
  • 1970-01-01
  • 1970-01-01
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多