2012-01-15 1 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' 

принимаются как массив, как это:

Я не хочу, чтобы они принимались за массивы, я хочу, чтобы они принимались за ключ и значение данных массива ['e'] '. На самом деле, я хочу, чтобы все элементы массивов $ my_array и 'data [' e ']' принимались за ключи и значения соответствующего массива (а не как массивы).

Любая помощь пожалуйста?

PS Это, кажется, происходит только тогда, когда я делаю отладку на CakePHP, если я не использую CakePHP все, кажется, хорошо и «данные» происходит от cURL опубликованных данных CakePHP

+0

'' data ['a'] ['b'] => 'value1'' - это, безусловно, недействительный синтаксис. Откуда берутся эти данные? Как он рассматривается как массив? Пожалуйста, покажите более полный пример. – deceze

+0

«данные» поступают из данных cURL, отправленных в cakePHP. – user765368

+0

Если вы используете данные POST, такие как 'data [Foo] [bar] = baz & data [Foo] [baz] = bar' to Cake, то да, это рассматривается как массив. На самом деле даже обычный PHP будет рассматривать это как массив. Это ваш вопрос? – deceze

ответ

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) в $ данных.

Смежные вопросы