[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как получить данные из массива
xxxLOGIATxxx
Как вывести данные из массива которые можно будет вывести в отдельных переменных?

Пример массива:
Array ( [user_exists] => 0 [user_info] => Array ( [user_id] => 4 [user_subnet_id] => 0 [user_username] => 4 [user_photo] => 0_2117.jpg [user_fname] => Ivan [user_lname] => Raguzin [message_id] => 387 [message_status] => 1 [message_body] => Здразуй [message_date] => 1320730941 [user_displayname] => Ivan Raguzin ) [profile_info] => [level_info] => [subnet_info] => [usersetting_info] => [user_salt] => [moderation_privacy] => 1 [session_info] => [user_displayname] => Ivan Raguzin [user_displayname_short] => Ivan )


Через цикл всё выводится как полагается, но что делать если я хочу вывести определённые данные, например "user_id", без цикла в отдельную переменную?

Как то так?
$переменная_в_которой_будет_сохранён_результат_из_массива = $массив['user_id']




Спустя 1 час, 13 минут, 59 секунд (2.12.2011 - 09:34) forza написал(а):
самый простой вариант -> $var = $array['user_info']['user_id'];

Спустя 36 минут, 39 секунд (2.12.2011 - 10:11) xxxLOGIATxxx написал(а):
Блин, бесит уже, не могу тупо вывести всего одну строку из базы.

Цитата
самый простой вариант -> $var = $array['user_info']['user_id'];


Пусто

Спустя 6 минут, 13 секунд (2.12.2011 - 10:17) xxxLOGIATxxx написал(а):
Получаем массив из класса:
$message_view = $user->get_user_message_info();

Затем пытаемся вывести отдельную переменную следующими способами:
$message_body = $message_view->user_info['message_date'];
$message_body = $message_view['user_info']['message_date'];
echo $message_body;
print_r($message_body);

И нифига.

А сам массив c помощью print_r($message_view) выводится и пишет:
Цитата
Array ( [0] => SEUser Object ( [is_error] => 0 [user_exists] => 0 [user_info] => Array ( [user_id] => 4 [user_subnet_id] => 0 [user_username] => 4 [user_photo] => 0_2117.jpg [user_fname] => Ivan [user_lname] => Raguzin [message_id] => 387 [message_status] => 1 [message_body] => Здразуй [message_date] => 1320730941 [user_displayname] => Ivan Raguzin ) [profile_info] => [level_info] => [subnet_info] => [usersetting_info] => [user_salt] => [moderation_privacy] => 1 [session_info] => [user_displayname] => Ivan Raguzin [user_displayname_short] => Ivan ) )




Спустя 27 минут, 51 секунда (2.12.2011 - 10:45) Игорь_Vasinsky написал(а):
не читабильно.

выводи так

echo '<pre>' . print_r($message_view, 1) . '</pre>';

Спустя 1 минута, 4 секунды (2.12.2011 - 10:46) killer8080 написал(а):
xxxLOGIATxxx
а так?
$message_body = $message_view->user_info->message_date;

Спустя 57 секунд (2.12.2011 - 10:47) forza написал(а):
$var = $message_view[0]['user_info']['user_id'];

а так wink.gif ?

Спустя 6 минут, 41 секунда (2.12.2011 - 10:54) xxxLOGIATxxx написал(а):
Игорь_Vasinsky

Цитата
Array
(
    [0] => SEUser Object
        (
            [is_error] => 0
            [user_exists] => 0
            [user_info] => Array
                (
                    [user_id] => 4
                    [user_subnet_id] => 0
                    [user_username] => 4
                    [user_photo] => 0_2117.jpg
                    [user_fname] => Ivan
                    [user_lname] => Raguzin
                    [message_id] => 387
                    [message_status] => 1
                    [message_body] => Здразуй
                    [message_date] => 1320730941
                    [user_displayname] => Ivan Raguzin
                )

            [profile_info] =>
            [level_info] =>
            [subnet_info] =>
            [usersetting_info] =>
            [user_salt] =>
            [moderation_privacy] => 1
            [session_info] =>
            [user_displayname] => Ivan Raguzin
            [user_displayname_short] => Ivan
        )

)



killer8080, пусто

forza, страница вообще не загрузилась

Спустя 18 минут, 17 секунд (2.12.2011 - 11:12) bulgakov написал(а):
У вас просто путаница с массивами и объектами, приведите все к какому-то одному типу данных.

Спустя 3 минуты, 45 секунд (2.12.2011 - 11:16) bulgakov написал(а):
В 0 ячейке массива у вас объект SEUser Object, может попробовать так?
$array = (array)$message_view[0];

и уже из $array брать то что нужно.

Спустя 50 минут, 36 секунд (2.12.2011 - 12:06) xxxLOGIATxxx написал(а):
$массив[] =& $message_user->user_info['message_body']

Каким образом из этого массива достать message_body?

Спустя 1 час, 37 минут, 23 секунды (2.12.2011 - 13:44) xxxLOGIATxxx написал(а):
Ну неужели никто не знает?

Спустя 9 минут, 38 секунд (2.12.2011 - 13:53) m4a1fox написал(а):
Я бы посоветовал вам дать больше информации по интересующему вас вопросу!

Спустя 9 минут, 21 секунда (2.12.2011 - 14:03) Zerstoren написал(а):
Может так?
$message_user->user_info->message_body;

если не прокатит, попробуйте
(string) $message_user->user_info->message_body;

Если нет, воспользуйтесь var_dump, он больше инфы дает по данным.

Спустя 4 минуты, 44 секунды (2.12.2011 - 14:07) xxxLOGIATxxx написал(а):
m4a1fox, в $массив вводятся различные данные следующим образом:

$массив[] =& $message_user->user_info['message_body']


Как теперь из этого массива выдрать эти самые данные, например ту же самую 'message_body' чтобы занести её в отдельную переменную и вывести в браузер?

Функцию я расписывать не буду потому что она всех запутает.

Спустя 6 минут, 17 секунд (2.12.2011 - 14:14) xxxLOGIATxxx написал(а):
Zerstoren, вот что выдал var_dump:
array(1) { [0]=> object(SEUser)#24 (12) { ["is_error"]=> int(0) ["user_exists"]=> int(0) ["user_info"]=> array(11) { ["user_id"]=> string(1) "4" ["user_subnet_id"]=> int(0) ["user_username"]=> string(1) "4" ["user_photo"]=> string(10) "0_2117.jpg" ["user_fname"]=> string(4) "Ivan" ["user_lname"]=> string(7) "Raguzin" ["message_id"]=> string(3) "387" ["message_status"]=> string(1) "1" ["message_body"]=> string(14) "Здразуй" ["message_date"]=> string(10) "1320730941" ["user_displayname"]=> string(12) "Ivan Raguzin" } ["profile_info"]=> NULL ["level_info"]=> NULL ["subnet_info"]=> NULL ["usersetting_info"]=> NULL ["user_salt"]=> NULL ["moderation_privacy"]=> int(1) ["session_info"]=> NULL ["user_displayname"]=> string(12) "Ivan Raguzin" ["user_displayname_short"]=> string(4) "Ivan" } }


Спустя 1 минута, 36 секунд (2.12.2011 - 14:15) killer8080 написал(а):
$message_body = $message_view[0]->user_info->message_date;

Спустя 1 минута, 10 секунд (2.12.2011 - 14:17) xxxLOGIATxxx написал(а):
killer8080, неа, пусто

Спустя 2 минуты, 9 секунд (2.12.2011 - 14:19) xxxLOGIATxxx написал(а):
Всё это дело работает на шаблонизаторе Smarty и по следующей конструкции он выводит всё как надо:
{section name=test loop=$message_view}
{
$message_view[test]->user_info.message_body}
{
/section}


Но мне нужно получить данные чтобы выводить их отдельно, вне цикла, без {section}.

Спустя 6 минут, 19 секунд (2.12.2011 - 14:25) killer8080 написал(а):
xxxLOGIATxxx
делаешь так?
$message_view = $user->get_user_message_info();
echo $message_view[0]->user_info->message_date;

Спустя 6 минут, 50 секунд (2.12.2011 - 14:32) xxxLOGIATxxx написал(а):
killer8080, так и делал, вообще никаких результатов

Спустя 4 минуты, 6 секунд (2.12.2011 - 14:36) killer8080 написал(а):
Странно blink.gif , должно работать при той структуре, что ты показал.

Спустя 2 минуты, 16 секунд (2.12.2011 - 14:38) xxxLOGIATxxx написал(а):
killer8080, я вот тоже сижу и думаю чё за фигня =\

Спустя 6 минут, 24 секунды (2.12.2011 - 14:45) killer8080 написал(а):
xxxLOGIATxxx
покажи этот свой код, наверно все таки что то не то делаешь.

Спустя 6 минут, 18 секунд (2.12.2011 - 14:51) xxxLOGIATxxx написал(а):
Функция в которой мы соединяем таблицы пользователей и сообщений для получения данных:
 function get_user_message_info($message_id)
{
global $database, $user;

$sql = "
SELECT MESSAGES.*, USERS.*
FROM se_messages MESSAGES
JOIN se_users USERS
ON MESSAGES.message_authoruser_id = USERS.user_id
WHERE MESSAGES.message_id =
$message_id
LIMIT 1";

$resource = $database->database_query($sql);
$user_info = $database->database_fetch_assoc($resource) ;
$user_message_info = array();
$message_user = new SEUser();
$message_user->user_info['user_id'] = $user_info['user_id'];
$message_user->user_info['user_username'] = $user_info['user_username'];
$message_user->user_info['user_photo'] = $user_info['user_photo'];
$message_user->user_info['user_fname'] = $user_info['user_fname'];
$message_user->user_info['user_lname'] = $user_info['user_lname'];
$message_user->user_info['message_id'] = $user_info['message_id'];
$message_user->user_info['message_status'] = $user_info['message_status'];
$message_user->user_info['message_body'] = $user_info['message_body'];
$message_user->user_info['message_date'] = $user_info['message_date'];
$message_user->user_displayname();
$user_message_info[] =& $message_user;
unset($message_user);

// RETURN ARRAY
return $user_message_info;

}


Затем мы на отдельной странице вызываем эту самую функцию, передавая в неё переменную с id-сообщения ($message_id) и пытаемся вывести эти самые проблемные данные:

$message_view = $user->get_user_message_info($message_id);
$message_body = $message_view[0]->user_info->message_body;
echo $message_body;

Спустя 11 минут, 10 секунд (2.12.2011 - 15:02) killer8080 написал(а):
тю блин, message_info это ж массив
$message_body = $message_view[0]->user_info['message_body'];

я правда так и не понял зачем ты возвращаемый объект заворачиваешь в массив, в функции get_user_message_info.

Спустя 5 минут, 50 секунд (2.12.2011 - 15:08) xxxLOGIATxxx написал(а):
killer8080, заработало, спасибо добрый человек! +1


Цитата
я правда так и не понял зачем ты возвращаемый объект заворачиваешь в массив, в функции get_user_message_info.


Это уже недостаток опыта, сам не знаю зачем )
Ты про $user_message_info = array();? Убрать его?

Спустя 7 минут, 6 секунд (2.12.2011 - 15:15) xxxLOGIATxxx написал(а):
Тут есть просто один нюанс, я ведь не зря прописал $message_user = new SEUser();, это дело как бы переделывает переменные, переписывает адреса фотографий и ссылок, приводя их в нужный формат, а если всё делать именно так как сделали сейчас, то она как бы перестаёт функционировать

Спустя 5 минут, 42 секунды (2.12.2011 - 15:21) xxxLOGIATxxx написал(а):
Например, выводя это дело в цикле по такому типу:

{section name=test loop=$message_view}
<img src='{$message_view[test]->user_photo("./images/nophoto.gif", TRUE)}' width='60' height='60' border='0' alt='' />
{/section}


То выводится уменьшенный вариант фотографии пользователя

Спустя 5 минут, 12 секунд (2.12.2011 - 15:26) killer8080 написал(а):
Цитата (xxxLOGIATxxx @ 2.12.2011 - 14:08)
Ты про $user_message_info = array();? Убрать его?

да, оно там лишнее. Выкинь это
$user_message_info[] =& $message_user;
unset($message_user);

нет смысла создавать массив с одним элементом, сразу возвращай $message_user
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.