2012-01-15 148 views
-2

我在这里有一个奇怪的问题。我使用在PHP(使用CakePHP),其具有如下形式的关联数组:以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['e1']['e2']' => 'value3' and 'data['e1']['e3']' => 'value4' 

采取像这样的数组:

'data['e1']' => array(
    ['e2'] => 'value3', 
    ['e3'] => 'value4'); 

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

请帮忙吗?

PS这似乎只有当我做了调试介绍CakePHP的情况发生,如果我不使用CakePHP似乎一切都很好,“数据”来自一个cURL发布的数据把CakePHP

+0

''data ['a'] ['b'] =>'value1'是语法无效。这些数据来自哪里?它如何被视为数组?请显示一个更完整的例子。 – deceze 2012-01-15 04:38:16

+0

“data”来自一个cURL发布的数据到cakePHP – user765368 2012-01-15 04:43:58

+0

如果你将数据像'data [Foo] [bar] = baz&data [Foo] [baz] = bar'发布到Cake,那么是的,它被视为一个数组。事实上,即使是普通的PHP也会将其视为一个数组。这是你的问题吗? – deceze 2012-01-15 04:45:25

回答

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

请告诉我们的内容(例如,使用print_r)的$数据。

相关问题