имеется форма со случайным кол-ом групп элементов, в каждой группе 3 элемента:
<form enctype="multipart/form-data" id="handler_form" method="post" action="">
<input name="add[work][day]" type="text" maxlength="255" value="1" />
<input name="add[work][may]" type="text" maxlength="255" value="2" />
<input name="add[work][shmay]" type="text" maxlength="255" value="3" />
<input name="add[work][day]" type="text" maxlength="255" value="4" />
<input name="add[work][may]" type="text" maxlength="255" value="5" />
<input name="add[work][shmay]" type="text" maxlength="255" value="6" />
<input name="add[work][day]" type="text" maxlength="255" value="7" />
<input name="add[work][may]" type="text" maxlength="255" value="8" />
<input name="add[work][shmay]" type="text" maxlength="255" value="9" />
<input type="submit" value="add"/>
</form>
отправляя эти данные обработчику php можно ли получить массив вида
work[1] -> day -> 1, may -> 2, shmay -> 3
work[2] -> day -> 4, may -> 5, shmay -> 6
work[3] -> day -> 7, may -> 8, shmay -> 9
без использования метода add[work][1][day], add[work][1][may], add[work][1][shmay] и т.д. ?
Или остается использовать JS и автоматически проставлять номера массивов при добавлении очередной группы этих 3 элементов.
ДА
<?php ($i = 1,$j =1; $i<= 3,$<=9; $i++,$j++) {?>
<input name="add[work][<?=$i?>][day]" type="text" maxlength="255" value="<?=$j?>" />
<input name="add[work][<?=$i?>][may]" type="text" maxlength="255" value="<?=$j?>" />
<input name="add[work][<?=$i?>][shmay]" type="text" maxlength="255" value="<?=$j?>" />
<?php }?>
вот удалось накидать очень грубый вариант
//
$_massive_day = $_POST['add']['day'];
$_massive_may = $_POST['add']['may'];
$_massive_shmay = $_POST['add']['shmay'];
$_good_massive = array();
//
$_i_massive = 0;
foreach ( $_massive_day as $_massive_day_value )
{
$_good_massive['classes'][$_i_massive]['day'] = $_massive_day_value;
$_i_massive++;
}
//
$_i_massive = 0;
foreach ( $_massive_may as $_massive_may_value )
{
$_good_massive['classes'][$_i_massive]['may'] = $_massive_may_value;
$_i_massive++;
}
//
$_i_massive = 0;
foreach ( $_massive_shmay as $_massive_shmay_value )
{
$_good_massive['classes'][$_i_massive]['shmay'] = $_massive_shmay_value;
$_i_massive++;
}
var_dump($_good_massive);
В итоге получаем то что нужно
array(1) {
["classes"]=>
array(3) {
[0]=>
array(3) {
["day"]=>
string(1) "1"
["may"]=>
string(1) "2"
["shmay"]=>
string(1) "3"
}
[1]=>
array(3) {
["day"]=>
string(1) "4"
["may"]=>
string(1) "5"
["shmay"]=>
string(1) "6"
}
[2]=>
array(3) {
["day"]=>
string(1) "7"
["may"]=>
string(1) "8"
["shmay"]=>
string(1) "9"
}
}
}
ура! и пойду теперь спать со спокойной душой)
---> а вот вариант уже менее объемный)
function groupform( $_data, $_name )
{
global $_data_array;
foreach ( $_data as $_data_key => $_data_value )
{
$_data_array["$_data_key"]["$_name"] = $_data_value;
}
}
//
groupform($_POST['add']['day'], 'day');
groupform($_POST['add']['may'], 'may');
groupform($_POST['add']['shmay'], 'shmay');
var_dump($_data_array);
результат ->
array(3) {
[0]=>
array(3) {
["day"]=>
string(1) "1"
["may"]=>
string(1) "2"
["shmay"]=>
string(1) "3"
}
[1]=>
array(3) {
["day"]=>
string(1) "4"
["may"]=>
string(1) "5"
["shmay"]=>
string(1) "6"
}
[2]=>
array(3) {
["day"]=>
string(1) "7"
["may"]=>
string(1) "8"
["shmay"]=>
string(1) "9"
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Если мы введем такой код
При сборке проекта в VS 2015 происходит Ошибка LNK1104 не удается открыть файл "MSCOREElib"
Пытаюсь получить в ответе переменную t2 не как тип int, а как floatТ