2013-10-15 30 views
0

我有一个函数,它使用print_r吐出一个数组,并且希望捕获变量中的信息,以将其输入到特定用例的函数中。 我简化了输出以便于理解。如何格式化var_dump的输出以用作变量?

[fruit] => 'banana' 
[color] => 'yellow' 
[sizes] => array('small', 'medium') 

我想它格式化为这样:

$var = 'fruit' => 'banana', 'color' => 'yellow', 'sizes' => array('small', 'medium'); 

这样我可以复制和粘贴第一的输出,并将其分配给新的默认变量。

+0

考虑使用[JSON](http://www.php.net/manual/en/function.json-encode.php)。 – kojiro

+2

我不明白你为什么复制/粘贴任何东西?为什么不把变量传递给函数呢? –

+0

['var_export()'](http://php.net/manual/en/function.var-export.php)会工作吗? –

回答

1

功能此:

  1. var_export()
    • 临:在产出,可以是简单地复制/粘贴到一个PHP脚本的格式。
    • Con:必须粘贴到脚本中。如果您使用eval()来阅读它,那是很可怕的做法,我会削减你的。
  2. json_encode()/json_decode()
    • 临:广泛应用于跨许多语言,人类可读的,容易理解。
    • 缺点:本身不支持旧版本的PHP
  3. serialize()/unserialize()
    • 专业:可在PHP的所有版本
    • 缺点:利用非打印字符[像空字节]认为可能会导致IO工作流程出现问题,这些工作流程并未明确知道这一事实。
+0

'var_export()'对我所做的事情完美无缺。这是一份州和它们的纬度和经度的列表。如果需要的话,我最终会把它们放入数据库中,但现在这个效果很好。 – neoian

0

尝试用<pre></pre>标签包装它,所以它看起来就像是:

echo '<pre>'; 
var_dump($var); 
echo '</pre>'; 
+0

这给了前者,我期待打印后者。 – neoian

0

也可以考虑的print_r其操作类似,但提供了第二个参数,当设置为'true'将返回值作为变量而不是将其打印到STDOUT。