Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2016, 12:03   #1
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию работа с массивом ...

Доброго времени суток!

Суть вот какая :

есть некий массив

PHP код:
$arr = array("1","2","3","4","5","6");

foreach(
$arr as &$value) {
echo 
"<p>" $value "</p>";
}
        
print_r($arr); 
мне нужно этот массив записать в таблицу что бы получилось типа такого

Код:
<table>
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>6</td>
</tr>
</table>
и или типа такого

Код:
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>
Как это можно реализовать ?
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 28.01.2016, 12:11   #2
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

и еще вопрос про Сериализацию

перевести массив могу в строку могу

PHP код:
$string serialize($arr);
echo 
$string
и получаю такую строчку

PHP код:
a:5:{i:0;s:1:"1";i:1;s:1:"2";i:2;s:1:"3";i:3;s:1:"4";i:4;s:1:"5";} 
а вот назад не могу перевести

PHP код:
$arr2 serialize($string);
echo 
$arr2
на экран выводит
Код:
Array
что тут делаю не так когда назад в массив пытаюсь вернуть ?
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 28.01.2016, 13:05   #3
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

PHP код:
$arr = array("1","2","3","4","5","6");


$rows 3;
$cols 2;

$counter 0;

echo 
"<table>\n";

for(
$r=0$r<$rows$r++){

    echo 
"<tr>\n";

    for(
$c=0$c<$cols$c++){

            echo 
"<td>".$arr[$counter]."</td>\n";
            
$counter++;
    }

    echo 
"</tr>\n";

}

echo 
"<table>\n"

Потому-что это массив.

PHP код:

$arr 
= [121212];

$serialized =  serialize ($arr);

echo 
$serialized;

$unserialized unserialize$serialized );

print_r($unserialized); 
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 28.01.2016, 15:18   #4
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

pompiduskus Спасибо Вам большое за подсказку все получилось )))
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 28.01.2016, 20:23   #5
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Пожалуйста
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 29.01.2016, 13:28   #6
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Вопрос возник еще один не как не могу решить :

Есть массив который я перевел в строчку

PHP код:
$string serialize($arr);
echo 
$string
потом строку

PHP код:
 a:5:{i:0;s:1:"1";i:1;s:1:"2";i:2;s:1:"3";i:3;s:1:"4";i:4;s:1:"5";} 
записал в бд ( для теста одну строчку записал три раза )

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

PHP код:
$rows 3;
$cols 2;

$counter 0;

echo 
"<table>\n";

for(
$r=0$r<$rows$r++){

    echo 
"<tr>\n";

    for(
$c=0$c<$cols$c++){

            echo 
"<td>".$arr[$counter]."</td>\n";
            
$counter++;
    }

    echo 
"</tr>\n";

}

echo 
"<table>\n"
"Я не волшебник, я только учусь"

Последний раз редактировалось s88s; 29.01.2016 в 13:33.
s88s вне форума Ответить с цитированием
Старый 29.01.2016, 14:04   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

1. наверное все таки 3 СТРОКИ а не ТАБЛИЦЫ?
2. если $arr = array("1","2","3","4","5","6"); ... то приведенный выше код выведет именно таблицу с 3 строками в 2 столбца
но при чем тут БД - неясно - в коде нет ничего, а телепатов нема

P.S \n - вообще не обязательны
ADSoft вне форума Ответить с цитированием
Старый 29.01.2016, 19:37   #8
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
P.S \n - вообще не обязательны
это я забыл убрать, в терминале просто писал.



Цитата:
Сообщение от s88s
.....
Я чесно говоря тоже не монял что ты хочешь а что не получается.

мы же не знаем как ты там достаешь дынные из базы ???



PHP код:


$arr 
= array(

    [
"0:1","0:2","0:3","0:4","0:5","0:6"],
    [
"1:1","1:2","1:3","1:4","1:5","1:6"],
    [
"2:1","2:2","2:3","2:4","2:5","2:6"]

);


for(
$XX=0$XX<count($arr); $XX++){

    
// ========================================================================
    
$rows 3;
    
$cols 2;

    
$counter 0;
    echo 
"-------------------------------------------------------------";
    echo 
"<table>";

    for(
$r=0$r<$rows$r++){

        echo 
"<tr>\n";

        for(
$c=0$c<$cols$c++){

                echo 
"<td>".$arr[$XX][$counter]."</td>";
                
$counter++;
        }

        echo 
"</tr>";

    }

    echo 
"<table>";  


    
// ========================================================================

<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 30.01.2016, 14:20   #9
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
1. наверное все таки 3 СТРОКИ а не ТАБЛИЦЫ?
2. если $arr = array("1","2","3","4","5","6"); ... то приведенный выше код выведет именно таблицу с 3 строками в 2 столбца
но при чем тут БД - неясно - в коде нет ничего, а телепатов нема

P.S \n - вообще не обязательны
Я

PHP код:
$arr = array("1","2","3","4","5","6"); 
привел к такому ввиду

PHP код:
  a:5:{i:0;s:1:"1";i:1;s:1:"2";i:2;s:1:"3";i:3;s:1:"4";i:4;s:1:"5";} 
Следующим образом

PHP код:
$string serialize($arr);
echo 
$string
и эту строку

PHP код:
  a:5:{i:0;s:1:"1";i:1;s:1:"2";i:2;s:1:"3";i:3;s:1:"4";i:4;s:1:"5";} 
я записал 3 раза в базу данных одну и ту же строку с разными ID потом с помощью

PHP код:
$sql_res mysql_query('SELECT * FROM `test`'); 
я вывожу данные из БД

PHP код:
$result mysql_fetch_array($sql_res);
    
$rows 3;
$cols 2;
$test_test unserialize($result['test']);

$counter 0;

echo 
"<table>\n";

for(
$r=0$r $rows$r++){
    echo 
"<tr>\n";

    for(
$c=0$c $cols$c++){

            echo 
"<td>" $test_test[$counter] . "</td>\n";
            
$counter++;
    }

    echo 
"</tr>\n";

}

echo 
"</table>\n"
И так выводится только одна строка из БД а вот как сделать что бы все три строки из БД вывелись на одной странице?
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 30.01.2016, 14:49   #10
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

сделал так сейчас

PHP код:

$sql_res 
mysql_query('SELECT * FROM `test`');

$count_db mysql_num_rows($sql_res);

for(
$db 0$db <  $count_db$db++){

$result mysql_fetch_array($sql_res);

$rows 3;
$cols 2;
$test_test unserialize($result['test']);

$counter 0;

echo 
"<table>\n";

for(
$r=0$r $rows$r++){
    echo 
"<tr>\n";

    for(
$c=0$c $cols$c++){

            echo 
"<td>" $test_test[$counter] . "</td>\n";
            
$counter++;
    }

    echo 
"</tr>\n";

}

echo 
"</table>\n";  


Так выводится всего две записи из трех при чем вывод происходит со второй записи по третью и тд а первую запись выводить не как не хочет ... я все записи почистил и по новой их вводил первая запись не выводится а вот дальше все норм ... даже делал так

for($db = 0; $db <= $count_db; $db++)

PHP код:

$sql_res 
mysql_query('SELECT * FROM `test`');

$count_db mysql_num_rows($sql_res);

for(
$db 0$db <=  $count_db$db++){

$result mysql_fetch_array($sql_res);

$rows 3;
$cols 2;
$test_test unserialize($result['test']);

$counter 0;

echo 
"<table>\n";

for(
$r=0$r $rows$r++){
    echo 
"<tr>\n";

    for(
$c=0$c $cols$c++){

            echo 
"<td>" $test_test[$counter] . "</td>\n";
            
$counter++;
    }

    echo 
"</tr>\n";

}

echo 
"</table>\n";  


и все равно не выводится первая запись ... что не так ?
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивом nibufep Общие вопросы Delphi 4 16.02.2015 17:52
Работа с массивом Marusya293 Помощь студентам 1 21.10.2013 05:53
Работа с массивом glebast Помощь студентам 1 20.02.2013 16:53
С++. Работа с массивом. Bonne Помощь студентам 2 10.02.2010 21:49
работа с массивом kritik Помощь студентам 10 22.07.2009 20:00