|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.10.2010, 22:30 | #1 |
взагрузке.рф
Форумчанин
Регистрация: 13.06.2010
Сообщений: 117
|
Преобразование массива
Здравствуйте!
Помогите найти решение -преобразовать многомерный массив в одномерный и поменять его кодировку из UTF-8 в win-1251 Вот пример массива (полей uid,last_name и прочее может быть разное количество) Array ( [response] => Array ( [0] => Array ( [uid] => 1927834 [first_name] => Константин [last_name] => Николаев [sex] => 2 [city] => 2 [bdate] => 30.8.1988 [photo] => http://cs383.vkontakte.ru/u1927834/c_20a16d8e.jpg ) ) ) Как из этого массива сделать одномерный? Чтобы обращаться к элементам как $m[first_name], а не $m[response][0][first_name]
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851 |
05.10.2010, 00:23 | #2 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Попробуйте это сделать с помощью прохода по массиву с помощью for each и присвоения элементам нового массива текущего значения, а кодировку меняете с помощью mb_convert_encoding
|
05.10.2010, 23:46 | #3 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
mb_convert_encoding не работает с массивами, а только со строками.
kpachbiu Я, конечно, скажу глупость, но - $m = $m[response][0]; - и у вас одномерный массив. Насколько я понимаю, данный массив получается из базы данных. Вот, чтобы таких вопросов не было, запросы к БД нужно писать правильно, и тогда не будет лишнего мусорного кода. Во-первых, получать данные из БД нужно сразу в utf-8. Я даже больше скажу, их хранить нужно в utf-8. Во-вторых, получать одну строку из таблицы многомерным массивом и конвертировать её через "тридевять земель" в одномерный массив - плохой тон. Есть такие замечательные функции как mysql_fetch_assoc, mysql_fetch_array и т.д.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
06.10.2010, 20:31 | #4 | |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Цитата:
|
|
06.10.2010, 23:29 | #5 | |
взагрузке.рф
Форумчанин
Регистрация: 13.06.2010
Сообщений: 117
|
Цитата:
Я посылаю запрос мне их сервер присылает ответ в виде строчки: Array ( [response] => Array ( [0] => Array ( [uid] => 1927834 [first_name] => Константин [last_name] => Николаев [sex] => 2 [city] => 2 [bdate] => 30.8.1988 [photo] => http://cs383.vkontakte.ru/u1927834/c_20a16d8e.jpg ) ) ) Вот я и хотел встроить в обработчик (класс для работы с vkontatke API) упрощение (преобразование в одномерный массив и смена кодировки из UTF-8 в win-1251) Вот класс обработчик vkapi.class.php PHP код:
Может быть есть идеи?
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851 |
|
07.10.2010, 00:22 | #6 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Ну вот вручную и присвойте новым переменным значения каждого элемента.
|
07.10.2010, 02:36 | #7 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Подход неправильный, но всё-таки, попробуйте вместо строки return json_decode($res, true); поставить return json_decode(iconv('windows-1251', 'utf-8', $res), true);
Это я спросоня придумал. ) Завтра точно ужаснусь такому.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
07.10.2010, 05:18 | #8 |
Пользователь
Регистрация: 01.08.2010
Сообщений: 51
|
Код:
|
07.10.2010, 14:10 | #9 | |
взагрузке.рф
Форумчанин
Регистрация: 13.06.2010
Сообщений: 117
|
Цитата:
json_decode(iconv('utf-8', 'windows-1251', $res), true); Дает на выходе пустой результат! Наверно потому что сама функция json_decode работает только с данными в кодировке UTF-8 В общем тогда получается буду делать весь сайт в кодировке UTF-8 и проблема решена! Остается только преобразовать многомерный массив в одномерный?!
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851 |
|
07.10.2010, 15:36 | #10 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
А вы пробовали мой способ?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Преобразование двумерного массива в одномерный... | S.Mihail | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 09.12.2011 19:24 |
Преобразование массива в паскале | street_spirit | Помощь студентам | 9 | 05.10.2010 19:08 |
Преобразование массива с++ | davart | Помощь студентам | 3 | 01.10.2010 09:25 |
преобразование массива | PARTOS | Microsoft Office Excel | 4 | 20.01.2010 17:21 |