【问题标题】:explode strings while missing certain elements在缺少某些元素时爆炸字符串
【发布时间】:2012-10-08 20:20:05
【问题描述】:

如果有嵌套在某物内,任何人都知道如何处理爆炸错过元素?以下示例。

所以我有一个像这样的数据结构......

 {1,2,3,{4,2},5,6}

我正在尝试将它转换成这样的 php 数组...

 array( 1, 2, 3, array( 4, 2 ), 5, 6);

关于它如何工作的任何想法?一些建议是正则表达式还是在监控状态机时爆炸? (但我不知道它们是如何工作的:S)

【问题讨论】:

  • 在 PHP 5.4 中,这是一个数组字面量,并且将正常工作
  • 它在我看来也很像 JSON。
  • [1,2,3,[4,2],5,6] 在 PHP 5.4 中有效 codepad.viper-7.com/5t4K6A
  • 我知道在这种情况下可行,但如果它们不是方形的,而是像 {1,2,{3,2},4,5}
  • @MattPsyK 编辑您的问题以反映这一点。它极大地改变了问题。

标签: php regex arrays


【解决方案1】:

你可以试试

$string  =  "{1,2,{3,2},4,5}" ;
var_dump(__array($string));

$string  =  "[1,2,3,[4,2],5]" ;
var_dump(__array($string));

$string  =  "(1,2,(3,2),4,5)" ;
var_dump(__array($string,array("(",")")));

$string  =  "+1,2,+3,2-,4,5-" ;
var_dump(__array($string,array("+","-")));


function __array($string,$seperator = array("{","}"))
{
    $string  = str_replace($seperator, array("[","]"), $string);
    return json_decode($string);
}

输出

array
  0 => int 1
  1 => int 2
  2 => 
    array
      0 => int 3
      1 => int 2
  3 => int 4
  4 => int 5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多