如何将字符串数组转换为 php 数组?
How to convert String Array to php Array?
如何将 Sting 数组转换为 PHP 数组?
"['a'=>'value one','key2'=>'value two']"
到
$data=['a'=>'value one','key2'=>'value two'];
如果有人知道任何解决方案,请告诉我
我想通过文本区域获取数组输入。我想将其转换为 PHP 数组。
当我浏览文本区域时
['a'=>'value one','key2'=>'value two']
这是在提交 from
之后发生的
"['a'=>'value one','key2'=>'value two']"
现在如何将其转换为 PHP 数组?
使用 eval() 的极其不安全的版本:
<?php
$a = "['a'=>'value one','key2'=>'value two']";
eval('$b = '.$a.';');
print('<pre>');
print_r($b);
只有在您确定时才使用,其他人无法使用您的文本输入!
使用替换将其转换为 json 是 public 形式的更好选择。此外,如果你在工作中使用它,你可能会被解雇 :)
捕获语法错误:
<?php
$a = "['a'=>'value one','key2'=>'value two'dsbfbtrg]";
try {
eval('$b = '.$a.';');
} catch (ParseError $e) {
print('Bad syntax');
die();
// or do something about the error
}
print('<pre>');
print_r($b);
假设您不允许多维数组,这将起作用:
$stringArray = "['a'=>'value one','key2'=>'value two']";
$array = array();
$trimmedStringArray = trim( $stringArray, '[]' );
$splitStringArray = explode( ',', $trimmedStringArray );
foreach( $splitStringArray as $nameValuePair ){
list( $key, $value ) = explode( '=>', $nameValuePair );
$array[$key] = $value;
}
输出:
Array
(
['a'] => 'value one'
['key2'] => 'value two'
)
在处理输入之前,您可能需要进行一些错误检查以确保输入的格式正确。
另一个选项:
<?php
$string = "['a'=>'value one','key2'=>'value two']";
$find = ["'", "=>", "[", "]"];
$replace = ["\"", ":", "{", "}"];
$string = str_replace($find, $replace, $string);
$array = json_decode($string, true);
var_dump($array);
?>
如何将 Sting 数组转换为 PHP 数组?
"['a'=>'value one','key2'=>'value two']"
到
$data=['a'=>'value one','key2'=>'value two'];
如果有人知道任何解决方案,请告诉我
我想通过文本区域获取数组输入。我想将其转换为 PHP 数组。
当我浏览文本区域时
['a'=>'value one','key2'=>'value two']
这是在提交 from
之后发生的"['a'=>'value one','key2'=>'value two']"
现在如何将其转换为 PHP 数组?
使用 eval() 的极其不安全的版本:
<?php
$a = "['a'=>'value one','key2'=>'value two']";
eval('$b = '.$a.';');
print('<pre>');
print_r($b);
只有在您确定时才使用,其他人无法使用您的文本输入!
使用替换将其转换为 json 是 public 形式的更好选择。此外,如果你在工作中使用它,你可能会被解雇 :)
捕获语法错误:
<?php
$a = "['a'=>'value one','key2'=>'value two'dsbfbtrg]";
try {
eval('$b = '.$a.';');
} catch (ParseError $e) {
print('Bad syntax');
die();
// or do something about the error
}
print('<pre>');
print_r($b);
假设您不允许多维数组,这将起作用:
$stringArray = "['a'=>'value one','key2'=>'value two']";
$array = array();
$trimmedStringArray = trim( $stringArray, '[]' );
$splitStringArray = explode( ',', $trimmedStringArray );
foreach( $splitStringArray as $nameValuePair ){
list( $key, $value ) = explode( '=>', $nameValuePair );
$array[$key] = $value;
}
输出:
Array
(
['a'] => 'value one'
['key2'] => 'value two'
)
在处理输入之前,您可能需要进行一些错误检查以确保输入的格式正确。
另一个选项:
<?php
$string = "['a'=>'value one','key2'=>'value two']";
$find = ["'", "=>", "[", "]"];
$replace = ["\"", ":", "{", "}"];
$string = str_replace($find, $replace, $string);
$array = json_decode($string, true);
var_dump($array);
?>