将包含方括号的php字符串作为字符串而不是数组
我这里有个奇怪的问题。我在php中使用了一个关联数组(使用cakePHP),其形式如下:将包含方括号的php字符串作为字符串而不是数组,php,arrays,string,cakephp,multidimensional-array,Php,Arrays,String,Cakephp,Multidimensional Array,我这里有个奇怪的问题。我在php中使用了一个关联数组(使用cakePHP),其形式如下: $my_array = array( 'data['a']['b'] => 'value1', 'data['b']['c'] => 'value2', 'data['b']['d'] => 'value3', 'data['e'] => array( 'data['e1']['e2']' => 'value
$my_array = array(
'data['a']['b'] => 'value1',
'data['b']['c'] => 'value2',
'data['b']['d'] => 'value3',
'data['e'] => array(
'data['e1']['e2']' => 'value3',
'data['e1']['e3']' => 'value4'));
我的问题是
'data['e1']['e2']' => 'value3' and 'data['e1']['e3']' => 'value4'
像这样的数组:
'data['e1']' => array(
['e2'] => 'value3',
['e3'] => 'value4');
$my_array = array(
$data['a']['b'] => 'value1',
$data['b']['c'] => 'value2',
$data['b']['d'] => 'value3',
$data['e'] => array(
$data['e1']['e2'] => 'value3',
$data['e1']['e3'] => 'value4'));
我不希望将它们作为数组,我希望它们作为数组“data['e']”的键和值。事实上,我希望数组$my_数组和'data['e']'的所有元素都作为相应数组(而不是数组)的键和值
需要帮忙吗
这似乎只有在我对cakePHP进行调试时才会发生,如果我不使用cakePHP,一切似乎都很好,“数据”来自于向cakePHP发布的数据,在a中发布的数据会自动解析为数组。如果要获取原始输入,请使用
file\u get\u contents('php://input)
。请参阅。您的代码无效。我最好的猜测是它应该是这样的:
'data['e1']' => array(
['e2'] => 'value3',
['e3'] => 'value4');
$my_array = array(
$data['a']['b'] => 'value1',
$data['b']['c'] => 'value2',
$data['b']['d'] => 'value3',
$data['e'] => array(
$data['e1']['e2'] => 'value3',
$data['e1']['e3'] => 'value4'));
请向我们显示$data的内容(例如,使用
print\r
)。'data['a']['b']=>'value1'
无疑是无效语法。这些数据来自哪里?如何将其视为数组?请给出一个更完整的示例。“数据”来自一个向Cakephpi发布数据的cURL,如果您将类似于data[Foo][bar]=baz&data[Foo][baz]=bar的数据发布到Cake,那么是的,它被视为一个数组。事实上,即使是普通的PHP也会将其视为一个数组。这是你的问题吗?所以没有办法将数据[Foo][bar]=baz作为字符串获取?