У меня есть два массива, которые выходят из двух выбранных кратных, которые я хочу объединить, чтобы сохранить их в mysql.
Я использую foreach, чтобы пройти через один из них, но я хотел бы знать, есть ли возможность пройти через оба и сохранить их, пока это код, который я использую.
foreach($_POST["dato"] as $Dato) {
foreach($_POST["dato2"] as $Dato2) {
$INuevo = Insertar_Datos("Codigos" ,"`que`,`idcosa`,`1`,`2`" , "'test','$Id_Numero','".$Dato."','".$Dato2."' ");
}
}
Дело в том, что я хочу сделать цикл, который сначала считывает данные из первого массива, а затем проходит через второй, вставляя данные из второго со значением из первого (с этим в принципе у меня нет проблем, когда я знаю, что такое переменные, которые я должен передать в розыск). Например, предположим, что данные — это имена и фамилии:
имя = 1
фамилия = 1 от имени 1
фамилия = 2 от имени 1
фамилия = 3 от имени 1
имя = 2
фамилия = 1 имени 2
фамилия = 2 имени 2
фамилия = 3 имени 2
и так до конца дней, имея возможность иметь только две фамилии или только одну.
Возможно ли это или мне нужно сделать еще один foreach внутри foreach? может быть, for внутри первого foreach лучше?
внутри функции Insert_Data у меня есть это:
function Insertar_Datos() { global $Conectar;
$Parametros = func_get_args();
$InDatos = "INSERT INTO `".$Parametros[0]."` (".$Parametros[1].") VALUES (".$Parametros[2].");";
$RDatos = mysqli_query($Conectar, $InDatos);
if (!$RDatos) { http_response_code(500); print(mysqli_error($Conectar)); } else { http_response_code(200); echo "ok"; }
return $RDatos;
}
и выбранные кратные выглядят примерно так:
<select name="dato[]" multiple="multiple">
<option value="1">Numero 1</option>
<option value="2">Numero 2</option>
<option value="3">Numero 3</option>
</select>
<select name="dato2[]" multiple="multiple">
<option value="1">Numero 1</option>
<option value="2">Numero 2</option>
<option value="3">Numero 3</option>
</select>
Структура таблицы будет примерно такой:
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(10) | NO | PRI | NULL | |
| que | varchar(50) | YES | | NULL | |
| idcosa | int(10) | YES | | NULL | |
| 1 | varchar(200)| YES | | NULL | |
| 2 | varchar(200)| YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
idthing Я приношу его из другой таблицы, и это номер, по которому можно определить, откуда он взялся, но этот номер хорошо хранится.
Дело в том, что по какой-то причине, когда data2 имеет более одного значения, это не работает, и я не знаю, что со мной не так :_(
Чтобы вычислить
producto cartesiano
оба массива, вы можете использовать следующую функцию:показывать
Ваш код может привести к следующему:
Насколько я понимаю, у вас есть:
$_POST['datos']
и$_POST['datos2']
и вы хотите объединить их, чтобы перебрать их. Ну, вы можете комбинировать их сarray_merge()
: http://php.net/manual/es/function.array-merge.phpПосмотрите, работает ли это для вас таким образом.