|
|
|
|
|
для: gOFREe
(26.10.2010 в 14:59)
| | Зачем преобразовывать массив в строку, чтобы потом париться с ней в doubleExplode? Вот для чего это все? И зачем имена переменных в кавычки помещаете, для красоты? | |
|
|
|
|
|
|
|
для: sim5
(25.10.2010 в 22:19)
| | Вот подсмотрел примерно такой вывод, он нормальный или можно сделать проще?
<?
function doubleExplode ($del1, $del2, $array){
$array1 = explode("$del1", $array);
foreach($array1 as $key=>$value){
$array2 = explode("$del2", $value);
foreach($array2 as $key2=>$value2){
$array3[] = $value2;
}
}
$afinal = array();
for ( $i = 0; $i <= count($array3); $i += 2) {
if($array3[$i]!=""){
$afinal[trim($array3[$i])] = trim($array3[$i+1]);
}
}
return $afinal;
}
$_POST = array_map(null, $_POST['a'], $_POST['b']);
//либо можно опять функции стандартные использовать
array_walk($_POST, create_function('&$m','$m = implode("|", $m);'));
$c = implode("#", $_POST);
$test = doubleExplode('|', '#', $c);
foreach($test as $a => $b) {
echo "$a - $b<br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: sim5
(25.10.2010 в 22:19)
| | Огромное спасибо. | |
|
|
|
|
|
|
|
для: gOFREe
(25.10.2010 в 22:05)
| | А что наглядного то? Если вы хотите получать строку aaa|1#bbb|1#ccc|1, то для меньшей мороки желательно получать от формы массив, в котором бы значения aaa,1; bbb,1.... были бы его вложенными массивами. Тогда с минимумом затрать получите строку нужную. Если исходить из того, что есть, значит вы должны такой массив получить, и сделать это не сложно, если прочитать в мануале, что функция array_map с указанием null вместо callback-функции как раз и создает такой массив:
<?
echo "<pre>";
//получаем исходный
print_r($_POST);
//создаем массив массивов
$_POST = array_map(null, $_POST['a'], $_POST['b']);
//результат
print_r($_POST);
//теперь пройтись циклом и....
//либо можно опять функции стандартные использовать
array_walk($_POST, create_function('&$m','$m = implode("|", $m);'));
//результат
print_r($_POST);
//конечный продукт
echo implode("#", $_POST);
|
| |
|
|
|
|
|
|
|
для: sim5
(25.10.2010 в 00:13)
| | А наглядно можете пример привести? Заранее спасибо. | |
|
|
|
|
|
|
|
для: gofree
(24.10.2010 в 23:28)
| | Вы именуйте поля формы так, чтобы это были связанные массивы, и потом за проход можно было объеденить. Ну а решение - создайте массив массивов, который уже затем преобразуйте в строку. | |
|
|
|
|
|
|
| Здравствуйте. Никак не придет в голову как раскидать такой запрос.
Посылаются POST данные из формы, вида:
<input type="text" name="a[]" value="aaa"/>
<input type="text" name="b[]" value="1"/>
<input type="text" name="a[]" value="bbb"/>
<input type="text" name="b[]" value="1"/>
<input type="text" name="a[]" value="ccc"/>
<input type="text" name="b[]" value="1"/>
|
И задача такая, записать их в одну переменную, в виде:
aaa|1#bbb|1#ccc|1
Насколько я понял тут надо вести расфасовку через for(); и implode();
А как правильно написать.. | |
|
|
|
|