2013-06-21 4 views
0

мне нужно перекрывать данные из нескольких ассоциативных массивов со следующими соображениями:Перекрытие Ассоциативные массивы

  • Если ключ существует паросочетание, перезаписать его
  • Если ключ существует, но не соответствует, добавьте новое значение к этому элементу
  • Если ни один из вышеперечисленных, создать элемент для сохранения значения

Возьмем, например, следующие структуры:

<?php 

for ($i = 0; $i < 10; $i++) { 
    $table["table_$i"] = array(
     "cell_0" => array(
     'row'  => 12, 
     'column' => 5 
     ) 
    ); 
} 

for ($i = 4; $i < 12; $i++) { 
    $table["table_$i"] = array(
     "cell_0" => array(
     'row'  => 9, 
     'column' => 8 
     ) 
    ); 
} 

for ($i = 5; $i < 15; $i++) { 
    $table["table_$i"] = array(
     "cell_1" => array(
     'row'  => 4, 
     'column' => 1 
     ) 
    ); 
} 

?> 

Нужный результат будет выглядеть следующим образом:

{"table_0":{"cell_0":{"row":12,"column":5}},"table_1":{"cell_0":{"row":12,"column":5}},"table_2":{"cell_0":{"row":12,"column":5}},"table_3":{"cell_0":{"row":12,"column":5}},"table_4":{"cell_0":{"row":9,"column":8}},"table_5":{"cell_0":{"row":9,"column":8},"cell_1":{"row":4,"column":1}},"table_6":{"cell_0":{"row":9,"column":8},"cell_1":{"row":4,"column":1}},"table_7":{"cell_1":{"row":4,"column":1}},"table_8":{"cell_0":{"row":9,"column":8},"cell_1":{"row":4,"column":1}},"table_9":{"cell_0":{"row":9,"column":8},"cell_1":{"row":4,"column":1}},"table_10":{"cell_0":{"row":9,"column":8},"cell_1":{"row":4,"column":1}},"table_11":{"cell_0":{"row":9,"column":8},"cell_1":{"row":4,"column":1}},"table_12":{"cell_1":{"row":4,"column":1}},"table_13":{"cell_1":{"row":4,"column":1}},"table_14":{"cell_1":{"row":4,"column":1}}} 

принять к сведению от желаемого выхода, что значение cell_0 не заменяет значение cell_1: Я не мог получить желаемый результат с помощью array_merge() в этом случае.

Любая помощь будет оценена - спасибо!

+1

array_merge_recursive? – Orangepill

ответ

1

Проверить array_merge и array_unique Функции php.

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