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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2014, 21:45   #1
open
 
Регистрация: 18.06.2012
Сообщений: 8
По умолчанию Массивы и таблицы, очистка строк php

Добрый день. Полистал кучу форумов, оставшись без ответа.
Есть к примеру 5 массивов представленных как $array[$x] с идентификатором, каждый из массивов представляет собой набор строк.

PHP код:
$string $array[$x]['Id'] = //много чего;
$string .= $array[$x]['Text'] = //много чего;
$string .= $array[$x]['Address'] = //много чего;
$string .= $array[$x]['Price'] =  //много чего;
$string .= $array[$x]['Contact'] = //много чего; 
размерность [$x]:

PHP код:
$x=0$x<$Id['ID']->length$x++ 
Задача: передать массивы в таблицу с выводом через echo. Передать таким способом, чтобы каждый массив заполнял ячейки своего столбца в порядке [$x]. Количество строк можно задать по параметру $Id['ID'].

Из того что нашел, есть следующий пример:

PHP код:
$COLS 1// кол-во столбцов
$a range('a','z'); // массив с данными

echo '<table border="1">';
foreach (
$a as $k=>$v) {
    if (
$k%$COLS == 0)
        echo 
'<tr>';
    echo 
'<td>'.$v.'</td>';
    if ( (
$k%$COLS)==($COLS-1) || $k==(sizeof($a)-1) )
        echo 
str_repeat('<td>&nbsp;</td>'$COLS-($k%$COLS)-).'</tr>';
}
echo 
'</table>'
Работает он так, что если а=0, z=10, результат будет таблица с одним столбцом со значениям от 0 до 10 по возрастанию.

Как переделать код под мои нужды? Спасибо за ответы.

Последний раз редактировалось open; 30.08.2014 в 13:19.
open вне форума Ответить с цитированием
Старый 30.08.2014, 05:51   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Код:
echo '<table border=1>';
for($i=0; $i<$Id['ID'];$i++)
{
echo '<tr>
<td>' . $array[$i]['Id'] . '</td>
</tr>
<tr>
<td>' . $array[$i]['Text'] . '</td>
</tr>
<tr>
<td>' . $array[$i]['Address'] . '</td>
</tr>
<tr>
<td>' . $array[$i]['Price'] . '</td>
</tr>
<tr>
<td>' . $array[$i]['Contact] . '</td>
</tr>';
}
echo '</table>';
Вывод в таблицу по строкам.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 30.08.2014, 10:26   #3
open
 
Регистрация: 18.06.2012
Сообщений: 8
По умолчанию

Cпасибо. Реализовал так:

PHP код:
echo '<table border=1>';
for(
$i=0$i<$Id['ID']->length;$i++) {
 echo 
'<tr>
 <td>' 
$array[$i]['Id'] . '</td>
 <td>' 
$array[$i]['Address'] . '</td>
 <td>'   
$array[$i]['Text'] . '</td>
 <td>' 
$array[$i]['Price'] . '</td>
 <td>' 
$array[$i]['Contact'] . '</td>
 </tr>'
;
}
echo 
'</table>'
Выводит каждый столбец.
open вне форума Ответить с цитированием
Старый 30.08.2014, 13:18   #4
open
 
Регистрация: 18.06.2012
Сообщений: 8
По умолчанию

Появилась еще одна задача:
В строках массивов содержатся пробелы и &nbsp;
Как очистить от &nbsp; строки?

Пробовал следующий вариант:

PHP код:
$string .= $array[$x]['Price'] = preg_replace("/(\s)|(\&nbsp\;)/",'',$array[$x]['Price']); 
Сами пробелы убирает, однако &nbsp; нет.
open вне форума Ответить с цитированием
Старый 30.08.2014, 13:34   #5
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Регулярка у вас написана такая: найти первое единственное вхождение пробельного символа или строки '&nbsp;'. Хотя может быть PHP и заменяет все вхождения, тут я не знаю...

Попробуйте так:
Код:
/(\s)|(&nbsp;)/g
^-.-^ My GitHub

Последний раз редактировалось Fenex; 30.08.2014 в 13:37.
Fenex вне форума Ответить с цитированием
Старый 30.08.2014, 14:09   #6
open
 
Регистрация: 18.06.2012
Сообщений: 8
По умолчанию

Ошибка Warning: preg_replace(): Unknown modifier 'g' in
Напишите полное выражение пожалуйста.

Да, PHP заменяет все вхождения.

Полное выражение у меня:

PHP код:
preg_replace("/(\s)|(\&nbsp\;)/"," ",(html_entity_decode($array[$x]['Price']))); 

Последний раз редактировалось open; 30.08.2014 в 14:19.
open вне форума Ответить с цитированием
Старый 30.08.2014, 16:42   #7
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Модификатора g в PHP для регулярных выражений нет, то есть поиск нужно осуществлять тогда в цикле находя каждое вхождение и запоминая оставшуюся часть строки, проверяя ее каждый раз, пока будут находиться вхождения.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 31.08.2014, 14:13   #8
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Проверил. Убирает 2 и более пробела.
Код:
preg_replace("/(\s)|(&nbsp;)/",$str);
Перед & и ; не надо \
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание динамической таблицы в Php Tim4 Помощь студентам 11 30.05.2014 11:48
Создание динамической таблицы в Php Tim4 PHP 2 11.04.2014 12:10
PHP+mysql корректировка структуры таблицы Kostia PHP 3 30.09.2011 21:09
Двойная сортировка таблицы mysql в php Zhenya-Pvl PHP 2 10.06.2011 12:30
Функция спиральной таблицы PHP Fastah Помощь студентам 0 01.04.2011 10:13