Объединить два массива
у Меня есть форма с полями товары и количество, импортированные в накладной:
<div class="row">
<div class="form-group col-md-9">
<label for="produto_nfe">Produto</label>
<input type="text" value="" class="form-control" id="produto_nfe" name="produto_nfe[]" aria-describedby="" placeholder="predominância">
<div class="produtos"></div>
</div>
<div class="form-group col-md-3">
<label for="quantidade_nfe">Qtd</label>
<input type="text" value="" class="form-control" id="quantidade_nfe" name="quantidade_nfe[]" aria-describedby="" placeholder="X">
<div class="quantidade"></div>
</div>
</div>
Они передаются через ajax с помощью $(form).serialize();
и, как являются несколько полей, шаг, они, как array php.
Используйте следующий код php для приема:
$produtos = $_POST['produto_nfe'];
$quantidades = $_POST['quantidade_nfe'];
Когда я var_dump возвращает следующий результат:
Продуктов:
array(3)
{
[0]=> string(5) "Toras"
[1]=> string(5) "Toras"
[2]=> string(5) "Toras"
}
Количествах:
array(3)
{
[0]=> string(9) "0.7600 M3"
[1]=> string(10) "29.5700 M3"
[2]=> string(10) "29.5700 M3"
}
Нужно что эти поля связаны в новый array, чтобы я мог добавить в запасе, я бы хотел остаться бушевала образом:
array(3)
{
NOME QUANTIDADE
[Toras]=> string(5) "0.7600 M3"
[Toras]=> string(5) "29.5700 M3"
[Toras]=> string(5) "29.5700 M3"
}
Уже пробовал array_combine
:
$produtos = $_POST['produto_nfe'];
$quantidades = $_POST['quantidade_nfe'];
var_dump(array_combine($produtos, $quantidades));
, Но возвращает только один результат:
array(1)
{
["Toras"]=> string(10) "29.5700 M3"
}
, Как это может быть сделано так, чтобы оставалась все продукты, связанные с количеством?
1 answers
, Как описано в комментариях формата array желаемое не может быть достигнуто, потому что в PHP ассоциативный массив не может иметь ключи снова и снова. При попытке добавить ключ повторил приводит к перезаписи последнего введенного значения.
, Как было указано в комментарии, что оба массива имеют одинаковую длину, возможность перестановки данных и массив, где каждый элемент имеет id
пожаловать array $produtos
и количество пришествия array $quantidade
:
<?php
$produto = ["Toras", "Toras", "Toras"];
$quantidade = ["0.7600 M3", "29.5700 M3", "29.5700 M3"];
$romaneio = [];
foreach(range(0, count ($produto) - 1) as $i){
$romaneio[] = ["id"=> $produto[$i], "quantidade" =>$quantidade[$i]];
}
print_r($romaneio);
, Что приводит к следующим array:
Array
(
[0] => Array
(
[id] => Toras
[quantidade] => 0.7600 M3
)
[1] => Array
(
[id] => Toras
[quantidade] => 29.5700 M3
)
[2] => Array
(
[id] => Toras
[quantidade] => 29.5700 M3
)
)
Код работает в Repl.it: https://repl.it/repls/NotableCapitalDatalog