Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Разбор и вывод объекта, цикл foreach
grey4eg  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 16
Пользователь №: 42800
На форуме: 7 месяцев, 28 дней
Карма:




Добрый день! Прошу помощи с разбором объекта:
stdClass Object
(
[
id] => Array
(
[
0] => 20235900
[1] => 20235899
)

[
entry] => Array
(
[
0] => 1111
[1] => 2222
)

)

1

Данный массив получается при передаче показаний из формы типа
<input name="data[id][]">
<input
name="data[entry][]">

Далее превращаем массив в объект:
$dataobj = (object)$data;

Первый вопрос: что за единица в объекте, в конце?
Далее требуется вывести такую конструкцию:
id - entry
id1 - entry2
И так далее.
Таким образом:
<? foreach ($dataobj->entry as $entry) { 
echo "$entry";
}
?>

или
<? foreach ($dataobj->id as $entry) { 
echo "$entry";
}
?>

Выводится только что-то одно.
А как впихать это в что-то типа
<div class="col">
<div
class="param">Новые показания:<?=$id;?></div><div class="paramname"><?=$entry;?></div>
</div>

?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 19 дней
Карма: 725

Не курю:
1 год, 2 месяца, 6 дней


Цитата
Далее превращаем массив в объект:

а чё не в чёрного кота?

другими словами - а чё не массив ?


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
grey4eg  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 16
Пользователь №: 42800
На форуме: 7 месяцев, 28 дней
Карма:




Пусть массив. Сути не меняет.
Полей формы
<input name="data[id][]">
<input
name="data[entry][]
">
всегда разное количество

Array
(
[
id] => Array
(
[
0] => 20235900
[1] => 20235899
)

[
entry] => Array
(
[
0] => 1111
[1] => 2222
)

)

1


При использовании

foreach ($data as $id => $entry) {  
foreach ($entry as $ids => $entry2) {
echo entry2;
}
}


Мы получим
20235900
20235899
1111
2222

тогда как требуется

20235900
1111
20235899
2222

Понятно, что нужен массив с несколько иной структурой, такой:
Array
(
[
0] => Array
(
[
id] => 20235900
[entry] => 1111
)

[
1] => Array
(
[
id] => 20235899
[entry] => 2222
)

)


Но как добиться такой структуры при отправке?
И откуда эта единица в массиве?

Array
(
[
id] => Array
(
[
0] => 20235900
[1] => 20235899
)

[
entry] => Array
(
[
0] => 1111
[1] => 2222
)

)
[
color=red][b]1[/b]
[/
color]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 4 дня
Карма: 77




Array
(
[id] => Array
(
[0] => 20235900
[1] => 20235899
)

[entry] => Array
(
[0] => 1111
[1] => 2222
)

)
тогда как требуется

20235900
1111
20235899
2222

Очень грубо конечно.
foreach ($data['id'] as $id => $value) {  
echo '<br>'.$value.'<br>'.$data['entry'][$id];
}


Это сообщение отредактировал Kusss - 8.06.2016 - 13:27
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
grey4eg  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 16
Пользователь №: 42800
На форуме: 7 месяцев, 28 дней
Карма:




Спасибо. А то я смог заставить работать только вложенными циклами:

<?
foreach ($data as $id=>$val) {
foreach ($val as $v) {
echo $v."<br>";
}
}

?>


и исправлением формы на:

<input name="newentry[][id]" >
<input
name="newentry[][entry]" >


Это сообщение отредактировал grey4eg - 8.06.2016 - 13:53
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8735
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 1 день
Карма: 591




$data = [ 
'id' => [
20235900,
20235899
],
'entry' => [
1111,
2222
]
];

foreach (array_combine($data['id'], $data['entry']) as $id => $entry) {
echo "id: $id, entry: $entry<br>";
}
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса