Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将包含方括号的php字符串作为字符串而不是数组_Php_Arrays_String_Cakephp_Multidimensional Array - Fatal编程技术网

将包含方括号的php字符串作为字符串而不是数组

将包含方括号的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

我这里有个奇怪的问题。我在php中使用了一个关联数组(使用cakePHP),其形式如下:

$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作为字符串获取?