Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
alexmixaylov
1 / 1 / 2
Регистрация: 07.06.2013
Сообщений: 94
1

Обработать serialize данные, преобразовать в нужный вид

07.10.2014, 15:24. Просмотров 2025. Ответов 7
Метки нет (Все метки)

Никак не могу разобраться как сделать чтобы данные после unserialize имели нужный мне формат
с помощью js serialize упаковываю значения селектов
получается строка вида:
PHP
1
string(51) "from=airport&to=address-to&b-type=standard&pay=card"
мне нужно чтобы от нее осталось только значения селектов
например: airport, address-to, standard, card"

Когда и как это лучше сделать?
изначально обработать js и передать нужное значение
или передать строку как есть а в обработчике формы сделать преобразование?

сейчас если делаю на ПХП unserialize - то выдает bool(false)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2014, 15:24
Ответы с готовыми решениями:

Serialize не верно формирует данные
Есть массив => array(42) { => string(31) "Банковский ордер" => string(2)...

Прочитать данные из порта и преобразовать в читаемый вид
Помогите, пожалуйста, решить проблему. Уже второй день бьюсь, перегуглил все, но ответ так и не...

Преобразовать собранные данные в графический вид в Excel'e (Performance Monitor)
Как можно сохраненный график: открыть в Excel'e и преобразовать в читаемый, графический вид? На...

Прилетают данные UTF-8, как правильно преобразовать в читабельный вид?
Как преобразовать вот это: cout << buf<<endl; Выдает в UTF-8 кодировке:...

Привести отчет в нужный вид
Здравствуйте, мне нужно привести отчет в нужный вид: счет учета вывести отдельным полем и убрать...

7
TGrey[WoLf]
42 / 42 / 4
Регистрация: 14.09.2008
Сообщений: 683
07.10.2014, 16:28 2
Serialize в js вообще не тоже самое, что serialize в php. Соответственно вы не сможете десерелизовать этот текст.

Варианта 2, вы передаете эти данные на сервер через _GET или _POST, а значит в скрипте у вас уже есть массив
PHP
1
2
3
4
5
6
$_GET\$_POST = array(
    'from' => 'airport',
    'to' => '...',
    'b-type' => '....',
    'pay' => '....'
)
можете просто обойти массив и вытянуть свои значения.
Второй вариант, вы можете строку разбить через регулярку функцией preg_match.
0
alexmixaylov
1 / 1 / 2
Регистрация: 07.06.2013
Сообщений: 94
07.10.2014, 17:50  [ТС] 3
упаковал не в строку, а JSON формат использовал
в итоге передает в таком виде
PHP
1
2
3
4
5
6
7
array(4) 
        {   [0]=> array(2) { ["name"]=> string(4) "from" ["value"]=> string(7) "address" } 
            [1]=> array(2) { ["name"]=> string(2) "to" ["value"]=> string(10) "address-to" } 
            [2]=> array(2) { ["name"]=> string(6) "b-type" ["value"]=> string(8) "standard" } 
            [3]=> array(2) { ["name"]=> string(3) "pay" ["value"]=> string(4) "cash" } 
            
            }
могу вывести пары ключ- значение с помощью цикла
PHP
1
2
3
4
5
6
7
$data = ($_POST['itog']);
foreach ($data as $value) {
    foreach ($value as $key) {
 
        echo "$key <br>";
    }
}
мне нужны только значения, без ключей, есть такая функция в ПХП?
0
TGrey[WoLf]
42 / 42 / 4
Регистрация: 14.09.2008
Сообщений: 683
07.10.2014, 18:12 4
тыц
0
alexmixaylov
1 / 1 / 2
Регистрация: 07.06.2013
Сообщений: 94
07.10.2014, 19:59  [ТС] 5
Спасибо, уже разобрался
сделал конечно коряво, но для моих потребностей пойдет
PHP
1
2
3
4
5
6
7
8
9
10
$data = ($_POST['itog']);
$fromArray = $data[0];
$toArray = $data[1];
$classArray = $data[2];
$payArray = $data[3];
 
$from = $fromArray[value];
$to = $toArray[value];
$class = $classArray[value];
$pay = $payArray[value];
0
TGrey[WoLf]
42 / 42 / 4
Регистрация: 14.09.2008
Сообщений: 683
08.10.2014, 11:35 6
Цитата Сообщение от alexmixaylov Посмотреть сообщение
$from = $fromArray[value]; $to = $toArray[value]; $class = $classArray[value]; $pay = $payArray[value];
что?)
0
alexmixaylov
1 / 1 / 2
Регистрация: 07.06.2013
Сообщений: 94
08.10.2014, 11:47  [ТС] 7
Цитата Сообщение от TGrey[WoLf] Посмотреть сообщение
что?)
После функции serializeArray() получается многомерный массив
Цитата Сообщение от alexmixaylov Посмотреть сообщение
array(4)
* * * * { * [0]=> array(2) { ["name"]=> string(4) "from" ["value"]=> string(7) "address" }
* * * * * * [1]=> array(2) { ["name"]=> string(2) "to" ["value"]=> string(10) "address-to" }
* * * * * * [2]=> array(2) { ["name"]=> string(6) "b-type" ["value"]=> string(8) "standard" }
* * * * * * [3]=> array(2) { ["name"]=> string(3) "pay" ["value"]=> string(4) "cash" }
}
посмотрел на него внимательней, и вначале разбил на одномерные массивы, а потом по ключу [value] вывел нужные данные
0
TGrey[WoLf]
42 / 42 / 4
Регистрация: 14.09.2008
Сообщений: 683
14.10.2014, 19:07 8
Посмотрите в чем разница
PHP
1
$array['value']
и
PHP
1
$array[value]
Чтобы потом ничего не отпало)
0
14.10.2014, 19:07
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2014, 19:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

при открытие выбирать нужный "вид"
где надо ставить галочку чтобы при открытие программы открылась не первая view которая идет по...

Как обработать ситуацию, если пользователь вводит не нужный пункт меню?
Вот мой код: using System; using System.Collections.Generic; using System.Linq; using...

Открытие по кнопке фреймсета и нужный мне вид в правом фрейме
Как сделать что б по нажатию на кнопку открывался фреймсет и в правом фрейме нужный мне вид...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.