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


take php string which contains square brackets as string not array

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

$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');

我不希望这些被当作数组,我希望它们被当作数组"data['e']'"的键和值。事实上,我希望数组$my_array和'data['e']'的所有元素都作为相应数组的键和值(而不是数组)。

请帮忙吗?

p.S这似乎只有在我对cakeHP进行调试时才会发生,如果我不使用cakeHP,一切似乎都很好,并且"数据"来自发布到cakeHP 的cURL

您的代码是无效的PHP。我最好的猜测是它应该是这样的:

$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)。

特定语法的POST数据会自动解析为$_POST数组。如果要获得原始输入,请使用file_get_contents('php://input')。看见http://php.net/manual/en/wrappers.php.php.