|
|
|
| Так получилось что из $_POST приходит такой массв
Array
(
[andrey] => andrey
[андрей] =>андрей
[vova] => vova
[вова] => вова
[sergey] => sergey
[сергей] => сергей
....
)
|
нужно привести к виду : [key латиница] => value кирилица
вот пробовал
reset($_POST);
foreach($_POST as $k){
$key = current($_POST);
$value = next($_POST);
$test[$key] = $value ;
}
|
ну нето это ...
зы
вот такой массив нужно получить
Array
(
[andrey] => андрей
[vova] => вова
[sergey] => сергей
....
)
|
| |
|
|
|
|
|
|
|
для: vorobey
(13.03.2011 в 21:30)
| | а как так получилось, что приходит такой массив? не ужели нельзя с этим разобраться, чтоб приходил уже нормальным. | |
|
|
|
|
|
|
|
для: Valick
(13.03.2011 в 21:42)
| | Походу нельзя.
исходный массив
<?php
$config = array(
andrey => андрей,
vova => вова,
....
); ?>
|
Форма вот
<?php
foreach($config as $k=>$v) { ?>
<div class="element_left">
<input name="<?php echo $k; ?>" type="text" value="<?php echo $k; ?>">
</div>
<div class="element_right">
<input name="<?php echo $v; ?>" type="text" value="<?php echo $v; ?>">
</div>
<?php
}
?>
|
выводит список имен. имя(ключ ) ------- имя(значение)
И ключ и значение меняется в форме. Как их отослать по другому!? | |
|
|
|
|
|
|
|
для: vorobey
(13.03.2011 в 21:30)
| | Получится, только в том случае, если русские имена идут вслед за латинским, не перемешиваясь с остальными именами. Иначе невозможно будет автоматически назначить соответствие. | |
|
|
|
|
|
|
|
для: cheops
(13.03.2011 в 22:18)
| | Так такой и получается массив . но после того перебора получается смещение (каша) | |
|
|
|
|
|
|
|
для: vorobey
(13.03.2011 в 22:25)
| | честно скажу не знаю, может можно как-то стандартными функциями оба подмассива сочленить, но щас некогда углубляться в теорию. самое главное проанализируйте принцип :)
<?php
$config = array(
andrey => 'андрей',
vova => 'вова',
masha=> 'маша');
if($_POST[go]){
unset($config);
echo "<PRE>";
print_r($_POST);
echo "</PRE>";
while ($a = current($_POST[1])) {
$config[$a]=$_POST[2][key($_POST[1])];
next($_POST[1]);
}
}
echo "<PRE>";
print_r($config);
echo "</PRE>";
?>
<form action="vor.php" method="POST">
<?php
foreach($config as $k=>$v) {?>
<div class="element_left">
<input name="1[<?php echo $k; ?>]" type="text" value="<?php echo $k; ?>">
</div>
<div class="element_right">
<input name="2[<?php echo $k; ?>]" type="text" value="<?php echo $v; ?>">
</div>
<?php
}
?>
<input type="submit" name="go" value="GO">
</form>
|
| |
|
|
|
|
|
|
|
для: Valick
(13.03.2011 в 22:55)
| | Супер ;)
<?php
while ($a = current($_POST)) {
$config[$a]=$_POST[key($_POST)];
next($_POST);
}
?>
|
Спасибо большое! | |
|
|
|
|
|
|
|
для: vorobey
(13.03.2011 в 23:35)
| | это что? :)
если уж на то пошло, то для
Array
(
[andrey] => andrey
[андрей] =>андрей
[vova] => vova
[вова] => вова
[sergey] => sergey
[сергей] => сергей
....
)
|
<?php
while ($a = current($_POST)) {
$config[$a]=next($_POST);
next($_POST);
}
?>
|
но так не делают
зря Вы не стали анализировать код :)
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Valick
(13.03.2011 в 23:41)
| | А что не так ? значение от current($_POST[1]) взять нельзя.
Или что то другое ? | |
|
|
|
|
|
|
|
для: vorobey
(14.03.2011 в 01:27)
| | значение от current($_POST[1]) взять нельзя
это вопрос или утверждение?
current($_POST[1]) как раз нужно брать и я показал Вам как это сделать
в Вашем первоначальном варианте Вы не отделили "мух от котлет", нельзя разные сущности пхать в один массив. В моем варианте 2 массив повторяет исходный и служит для изменения значений, а 1 массив является вспомогательным и служит для изменения ключей, в таком варианте сохраняется зависимость ключь->значение. получив на сервере эти два массива Вы с ними можете делать все что угодно вплоть до удаления элементов любого из массивов или сортировки любого* массива, оставшиеся элементы не потеряют зависимость.
В Вашем варианте ни о сортировке ни о чем либо другом речи быть не может, и в случае чего (а случаи бывают всякие) Вы концов "не найдете". | |
|
|
|
|
|
|
|
для: Valick
(14.03.2011 в 09:27)
| | Я уже понял.
Переделал отправку ПОСТ формы, а то винигрет из значений... я уже начал визуально запутыватся
такой массив наглядней
Array
(
[key1] => andrey
[value1] =>андрей
[key2] => vova
[value2] => вова
[key3] => sergey
[value3] => сергей
....
)
|
Написал такую функцию
<?php
function Post_Arr() {
$count = count($_POST);
for ($i = 0; $i <= $count; $i++) {
$key = "key" . $i;
$value = "value" . $i;
$POST[$_POST[$key]] = $_POST[$value];
if (empty($POST[$_POST[$key]]))
unset($POST[$_POST[$key]]);
}
return $POST;
}
?>
|
Теперь все ок | |
|
|
|
|
|
|
|
для: vorobey
(15.03.2011 в 00:12)
| | Вот интересно мне, аж затылок зачесался... :)
я Вам предложил код проще, короче и лучше по всем параметрам
для внесения изменений в форму всего-лишь изменить одну букву и добавить 4 квадратных скобки
про обработчик и говорить нечего
мягко говоря странно...
ну что же, хозяин барин, пусть у Вас остается так как Вам угодно | |
|
|
|