2016-04-11 2 views
0

Я пытаюсь вставить пару новых пар ключ/значение в ассоциативный массив в определенном месте. Из других чтений, которые я сделал на SO, я уверен, что мне нужно пройти через массив и вставить новые значения, когда условие установлено.php insert key/value в ассоциативный массив

Вот текущий массив

array(
    (int) 0 => array(
     'Product' => array(
      'id' => '59', 
      'title' => ' Blue Dress', 
      'Review' => array(
       'id' => '7', 
       'product_id' => '59', 
       'Review' => array(
        (int) 0 => array(
         'average' => '3.0000' 
        ) 
       ) 
      ) 
     ) 
    ) 
    (int) 1 => array(
     'Product' => array(
      'id' => '60', 
      'title' => 'Red Dress', 
      'Review' => array() 
     ) 
    ) 
) 

Ключ Обзор не всегда есть данные, но когда это делает я хочу, чтобы вставить новый ключ-значение, аналогичную следующей выдержке

(int) 0 => array(
     'Product' => array(
      'id' => '59', 
      'title' => ' Blue Dress', 
      'Review' => array(
       'id' => '7', 
       'product_id' => '59', 
       'Review' => array(
        (int) 0 => array(
         'average' => '3.0000' 
         'some_value' => '5' 
        ) 
       ) 
      ) 
     ) 
    ) 

Я пробовал несколько вещей без успеха. Любая помощь очень благодарна.

ответ

0

Вы можете сделать что-то вроде этого:

if(!empty($your_array[index]['Product']['Review'])){ 
    $your_array[index]['Product']['Review']['Review'][index]['some_value'] = 'new_value'; 
} 

В вашем примере это может быть:

if(!empty($your_array[0]['Product']['Review'])){ 
    $your_array[0]['Product']['Review']['Review'][0]['some_value'] = 'new_value'; 
} 

Опять же, вы не упоминаете код. Так что сложно точно понять, чего вы хотите!

+0

Спасибо, это все. Очевидно, я не думал прямо. У меня нет достаточно высокой репутации, чтобы вы могли бы поддержать вас. В противном случае я бы это сделал. –

0

Вы должны перебирать Ваш массив и передать текущее значение будет ссылка:

// Notice & sign before variable 
foreach ($data as &$product) 
{ 
    if ($product['Product']['Review']) 
    { 
     // or iterate through Review array 
     $product['Product']['Review']['Review'][0]['some_value'] = 5; 
    } 
} 
Смежные вопросы