|
|
|
| Всем привет!
Что то совсем потерялся, заклинило..мне нужно записать в DB построчно name1[0],name2[0].. потом
name1[1],name2[1] ..и.т.д.
не могу сообразить... как?
Спасибо
форма: name1[]..и.т.д.
пост данные:
array
(
'mass' => array
(
'name1' => array
(
0 => '1'
1 => '2'
2 => '3'
)
'name2' => array
(
0 => '100'
1 => '200'
2 => '300'
)
'name3' => array
(
0 => '1'
1 => '1'
2 => '2'
)
'name4' => array
(
0 => '12254'
1 => '965'
2 => '6659'
)
)
|
хотел создать новый массив и в цикле вывести, то же не то
........... обработчик
$arr = array();
foreach ($_POST['mass'] as $key => $val) {
// --- НАЗВАНИЕ ---
foreach ($val as $v) {
// --- МАССИВ (значение) ---
$arr[$key] = $v;
}
}
...........
|
| |
|
|
|
|
|
|
|
для: Denandi
(30.12.2013 в 18:38)
| | Если это фиксировано по размеру вложений и так мало, то цикл, тем более со вложенным циклом не нужен:
<?
$sql = '('.implode(',', array_map('current', $_POST['mass'])).'),('.implode(',', array_map('next', $_POST['mass'])).'),('.implode(',', array_map('end', $_POST['mass'])).')';
//или для PHP >= 5.5
$sql = '('.implode(',', array_column($_POST['mass'], 0)).'),('.implode(',', array_column($_POST['mass'], 1)).'),('.implode(',', array_column($_POST['mass'], 2)).')';
//$sql для единственного запроса на запись в базу
//записывать построчно отдельным запросом, это плохо
|
| |
|
|
|
|
|
|
|
для: confirm
(31.12.2013 в 10:58)
| | >Если это фиксировано по размеру вложений и так мало, то цикл, тем более со вложенным циклом не нужен:
>
не, вложение неопределенное, чем и усложняет
>//записывать построчно отдельным запросом, это плохо
знаю что гадость редкостная, особенно в мн. числе но я под утро иссяк над решением этой задачи, что вопрос для форума формировал - лиш-бы "получить результат" (потом бы все равно искал др. решение), но на данный момент было пофиг.
Спасибо за решение, я уже нечто подобное побывал утром, правда мозг убил и не достигнув результата, переключился на другую альтернативу, вплоть до построчной записи.каюсь.
Пойду пробовать, что бы в новый год не тащить этот камень..
С наступающим! | |
|
|
|
|
|
|
|
для: Denandi
(31.12.2013 в 15:00)
| | Что усложняет? Выдергивать значения в промежуточный массив циклами с вложениями, это что? Если в цикле можно получить доступ к элементам, то почему не формировать сразу необходимое без промежуточного сохранения?
В версиях 5.5 и старше это сделать легко проходом единственного цикла while(), количество итераций которого будет задавать количество элементов первого вложения, если вложения это индексные массивы, или же массив ключей первого вложения, если вложения это ассоциативные массивы. В цикле получаем необходимые колонки по значениям итераций.
Это с условием, что длина всех вхождений одинакова, в противном случае требуется проверка этого условия.
В версиях ниже 5.5 нельзя получить элементы каждого вложения как массив и нужно работать с каждым элементом индивидуально, вот и вся разница. | |
|
|
|