2013-04-20 4 views
3

Прежде всего с этим вопросом в связи с этим question. Моя проблема в том, что мой друг имеет около 300 или около того массивов, которые ей нужно вставить в базу данных. Я получаю часть базы данных, как вы заметили в вопросе, который я связал, у меня есть эта часть. Однако возникает вопрос о том, как именно я должен получить все массивы и объединить их, чтобы я мог сделать foreach на массивах и проверить, является ли значение массивом, если оно использует имя массива как таблицу в запросе INSERT.Как скомбинировать несколько массивов

Это мой обновленный код:

 $colors['Colors_All'] = array("Black","Charcoal"); // Add unique indexes 
     $colors['Colors_Bright_All'] = array("Silver","White"); // Add unique indexes 

     $AllArrays = get_defined_vars(); // Get all defined vars 
     $Arrays = array(); // Set a default array 

     foreach ($AllArrays as $varName => $value) { // Run through all the variables set in the get_defined_vars 
      if(is_array($value) && $varName == 'colors') { // If it is an array and if the array is colors[] then 
       $Arrays = array_merge($Arrays, $value); // Merge those arrays into the new array 
      } 
     } 

Это теперь дает мне доступ ко всем данным.

+1

Не могли бы вы показать некоторые фрагменты того, что вы до сих пор? Только так мы можем видеть, как код, который вы работаете с работами – pjongjang

+0

Почему ваш друг не хранит эти «жестко закодированные массивы» один раз и навсегда в БД? Затем им не нужно будет перебирать все массивы, чтобы проверить значение, прежде чем вставлять его ... – Havelock

+0

Это то, что мы пытаемся сделать с массивами, которые мы хотим сохранить в базе данных. Его просто нетрудно составить 300 или таблицы (таблица для каждого массива), а затем вставить 20 или 30 значений на массив ... Вы знаете, что я имею в виду? –

ответ

2

Здесь вы идете:

$colors['Colors_All']  = array("Black","Charcoal","Light_Gray","Silver","White","Gold","Bronze","Copper","Platinum","Navy","Royal_Blue","Dodger_Blue","Deep_Sky_Blue","Turquoise","Tiffany_Blue"); 
$colors['Colors_Bright_All'] = array("Silver","White","Gold","Royal_Blue","Dodger_Blue","Deep_Sky_Blue","Deep_Green","Forest_Green","Bright_Green","Violet"); 
$colors['Colors_Light_All'] = array("Light_Gray","Silver","White","Gold","Dodger_Blue","Deep_Sky_Blue","Light_Blue","Bright_Green","LightGreen","Light_Green"); 

// This will store the merged results of each array 
$colorVars = array(); 

// Loop through all of the defined variables 
foreach ($colors as $colorKey => $value) { 
    // Add the results of this array to the main $colorVars array 
    $colorVars = array_merge($colorVars, $value); 
} 
+0

Брэндон Я не смогу проверить это/принять этот ответ, пока не свяжусь с ней. Поэтому не думайте, что я просто игнорирую этот ответ. –

+0

@RixhersAjazi Хорошо, дайте мне знать, как это работает –

+0

Почти 100% рабочих обновили мой OP –

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