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

时间:2012-01-15 04:34:08

标签: 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']' => '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这似乎只有在我对cakePHP进行调试时才会发生,如果我不使用cakePHP,一切似乎都很好,“数据”来自cURL发布的数据到cakePHP

2 个答案:

答案 0 :(得分:1)

您的代码无效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)。

答案 1 :(得分:0)

certain syntax中的已发布数据会自动解析为$_POST数组。如果要获取原始输入,请使用file_get_contents('php://input')。请参阅http://php.net/manual/en/wrappers.php.php