将PHP字符串数组转换为Array对象

时间:2016-04-29 09:32:28

标签: php arrays string

我正在开发一个PHP应用程序,我将字符串数组转换为对象数组有问题。我尝试使用(数组)强制将我的字符串转换为数组,但它不会起作用。这是我的字符串(调试):

string '['method'=>'post','action'=>'#']' (length=32)

正如您所看到的,它是一个完美的字符串数组,我想转换该字符串。

我的问题很简单,PHP是否有将字符串直接转换为数组的功能(我认为没有)或者我必须使用explode转换我的字符串?

3 个答案:

答案 0 :(得分:0)

以下是定义数组的方法。 但在编写代码之前,请查看 manuels

$arrayName = array('method' => 'post', 'action' => '#');

输出将读取

array (size=2)
  'method' => string 'post' (length=4)
  'action' => string '#' (length=1)

答案 1 :(得分:0)

从php 5.4你可以简单地评估: 的eval(" \ $ F = ['方法' =>'后''动作' =>'#&#39 ];&#34); 的var_dump($ F);

对于老人,你必须稍微修改一下弦乐,改变第一个" ["至"数组("以及最后一个"]"至")"。

这个问题与How to create an array from output of var_dump in PHP?

有点重复

答案 2 :(得分:0)

您可以使用preg_splitforeach()来完成这项工作:

$str = "['method'=>'post','action'=>'#']";

$splitArray = preg_split("/[,']+/", $str);
foreach ($splitArray as $k => $val) {
  if ($val == '=>') {
    $newArr[$splitArray[$k - 1]] =  $splitArray[$k + 1];
  }
}

var_dump($newArr);
/*newArr
Array
(
  [method] => post
  [action] => #
)*/