PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Arvaal
Отправлено: 22 Декабря, 2017 - 23:52:01
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2014
Откуда: Лабинск, Россия
Помог: 0 раз(а)
Строитель пишет: Arvaal , а структура исходного массива какая? Ключи же в исходном массиве не могут повторяться, поэтому структуру надо уточнить.
Ключи не повторяются...
Сам массив преобразуется с xml, он тут
https://integration[dot]cdek[dot]ru/pvzl[dot][dot][dot].php?countryid=1
Там есть ключ City у него есть примерно 90 одинаковых значений Москва, но есть и другие значения они отличаются, как объединить одинаковое и совместить другие значения.
Строитель
Отправлено: 23 Декабря, 2017 - 00:01:40
Участник
Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014
Откуда: Украина
Помог: 74 раз(а)
Arvaal , ну если хватит памяти, то попробуйте так
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$array = [
[ 'Оранжевый' => 'Апельсин' ] ,
[ 'Красный' => 'Яблоко' ] ,
[ 'Зеленый' => 'Огурец' ] ,
[ 'Красный' => 'Помидор' ] ,
[ 'Желтый' => 'Лимон' ] ,
[ 'Красный' => 'Клубника' ]
] ;
$result = [ ] ;
foreach ( $array as $arr ) {
foreach ( $arr as $key => $item ) {
$result [ $key ] = $result [ $key ] . ', ' . $item ;
} else {
$result [ $key ] = $item ;
}
}
}
echo '<pre>' , print_r ( $result , true ) , '</pre>' ; /*
Array
(
[Оранжевый] => Апельсин
[Красный] => Яблоко, Помидор, Клубника
[Зеленый] => Огурец
[Желтый] => Лимон
)
*/
Arvaal
Отправлено: 23 Декабря, 2017 - 00:06:34
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2014
Откуда: Лабинск, Россия
Помог: 0 раз(а)
Строитель пишет: Arvaal , ну если хватит памяти, то попробуйте так
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$array = [
[ 'Оранжевый' => 'Апельсин' ] ,
[ 'Красный' => 'Яблоко' ] ,
[ 'Зеленый' => 'Огурец' ] ,
[ 'Красный' => 'Помидор' ] ,
[ 'Желтый' => 'Лимон' ] ,
[ 'Красный' => 'Клубника' ]
] ;
$result = [ ] ;
foreach ( $array as $arr ) {
foreach ( $arr as $key => $item ) {
$result [ $key ] = $result [ $key ] . ', ' . $item ;
} else {
$result [ $key ] = $item ;
}
}
}
echo '<pre>' , print_r ( $result , true ) , '</pre>' ; /*
Array
(
[Оранжевый] => Апельсин
[Красный] => Яблоко, Помидор, Клубника
[Зеленый] => Огурец
[Желтый] => Лимон
)
*/
Спасибо
Arvaal
Отправлено: 23 Декабря, 2017 - 20:10:45
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2014
Откуда: Лабинск, Россия
Помог: 0 раз(а)
Что то я по разному пробовал и ничего не получается....
Если есть добрые люди... помогите.
Использую движок Опенкрт 1.5.4
Вот код tpl файла:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP echo $header ; ?> <?PHP echo $column_left ; ?> <?PHP echo $column_right ; ?>
<div id="content"><?PHP echo $content_top ; ?>
<div class="breadcrumb">
<?PHP foreach ( $breadcrumbs as $i => $breadcrumb ) { ?>
<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<?PHP echo $breadcrumb [ 'separator' ] ; ?> <?PHP if ( $i + 1
< count ( $breadcrumbs ) ) { ?> <a href="
<?PHP echo $breadcrumb [ 'href' ] ; ?> " itemprop="url"><span itemprop="title" title="
<?PHP echo $breadcrumb [ 'text_breadcrumbs_title' ] ; ?> ">
<?PHP echo $breadcrumb [ 'text' ] ; ?> </span></a>
<?PHP } else { ?> <span itemprop="title" title="
<?PHP echo $breadcrumb [ 'text_breadcrumbs_title' ] ; ?> "><link itemprop="url" href="
<?PHP echo $breadcrumb [ 'href' ] ; ?> " />
<?PHP echo $breadcrumb [ 'text' ] ; ?> </span>
<?PHP } ?> </span>
<?PHP } ?>
</div>
<h1><?PHP echo $heading_title ; ?> </h1>
<?PHP if ( $categories ) { ?>
<h2><?PHP echo $text_index ; ?> </h2>
<p>
<?PHP foreach ( $categories as $category ) { ?>
<a onclick="scroll_to('<?PHP echo '#' . $category [ 'city' ] ; ?> ');"><b><?PHP echo $category [ 'city' ] ; ?> </b></a>
<?PHP } ?>
</p>
<?PHP foreach ( $categories as $category ) { ?>
<div class="manufacturer-list">
<div class="manufacturer-heading"><?PHP echo $category [ 'city' ] ; ?> <a id="<?PHP echo $category [ 'city' ] ; ?> "></a></div>
<div class="manufacturer-content">
<?PHP if ( $category [ 'pvz' ] ) { ?>
<?PHP for ( $i = 0 ; $i < count ( $category [ 'pvz' ] ) ; ) { ?> <ul>
<?PHP $j = $i + ceil ( count ( $category [ 'pvz' ] ) / 4
) ; ?> <?PHP for ( ; $i < $j ; $i ++ ) { ?>
<?PHP if ( isset ( $category [ 'pvz' ] [ $i ] ) ) { ?> <li>
<h3 style="cursor:pointer" class="city open_size-table" onclick="$('.info-<?PHP echo $category [ 'pvz' ] [ $i ] [ 'code' ] ; ?> ').popup('show');"><?PHP echo $category [ 'pvz' ] [ $i ] [ 'city' ] ; ?> </h3>
<div id="size-table" class="show_size-table info-<?PHP echo $category [ 'pvz' ] [ $i ] [ 'code' ] ; ?> " style="display:none;padding:5px;border:1px solid gray">
<i class="fa fa-times close" onclick="$('.info-<?PHP echo $category [ 'pvz' ] [ $i ] [ 'code' ] ; ?> ').popup('hide')"></i>
<div class="head box-heading"><?PHP echo $category [ 'pvz' ] [ $i ] [ 'city' ] ; ?> </div>
<div class="size-table">
<span><b>Расположен: </b><?PHP echo $category [ 'pvz' ] [ $i ] [ 'name' ] ; ?> </span><br/>
<span><b>Адрес: </b><?PHP echo $category [ 'pvz' ] [ $i ] [ 'address' ] ; ?> </span><br/>
<span><b>Телефон: </b><?PHP echo $category [ 'pvz' ] [ $i ] [ 'phone' ] ; ?> </span><br/>
<span><b>Время работы: </b><?PHP echo $category [ 'pvz' ] [ $i ] [ 'work_time' ] ; ?> </span><br/>
</div>
</div>
</li>
<?PHP } ?>
<?PHP } ?>
</ul>
<?PHP } ?>
<?PHP } ?>
</div>
</div>
<?PHP } ?>
<?PHP } else { ?>
<div class="content"><?PHP echo $text_empty ; ?> </div>
<div class="buttons">
<div class="right"><a href="<?PHP echo $continue ; ?> " class="button"><?PHP echo $button_continue ; ?> </a></div>
</div>
<?PHP } ?>
<?PHP echo $content_bottom ; ?>
</div>
<?PHP echo $footer ; ?>
А вот код php из контролера:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP
class ControllerInformationPvz extends Controller {
public function index( ) {
$this -> language -> load ( 'information/pvz' ) ;
$this -> document -> setTitle ( $this -> language -> get ( 'heading_title' ) ) ;
/* Начало добавление альтернативной канонической ссылки */
if ( ( isset ( $_SERVER [ 'HTTPS' ] ) && ( $_SERVER [ 'HTTPS' ] == 'on' || $_SERVER [ 'HTTPS' ] == '1' || $_SERVER [ 'HTTPS' ] ) ) || ( ! empty ( $_SERVER [ 'HTTP_X_FORWARDED_PROTO' ] ) && ( strtolower ( $_SERVER [ 'HTTP_X_FORWARDED_PROTO' ] ) == 'https' ) || ( ! empty ( $_SERVER [ 'HTTP_X_FORWARDED_SSL' ] ) && $_SERVER [ 'HTTP_X_FORWARDED_SSL' ] == 'on' ) ) ) { $http_prot = HTTPS_SERVER_1;
} else {
$http_prot = HTTP_SERVER_1;
}
if ( $this -> url -> link ( 'information/pvz' ) !== $http_prot . $_SERVER [ 'REQUEST_URI' ] || $this -> url -> link ( 'information/pvz' ) !== $http_prot . $_SERVER [ 'REQUEST_URI' ] && isset ( $this -> request -> get [ 'page' ] ) ) { $this -> document -> addLink ( $this -> url -> link ( 'information/pvz' ) , 'canonical' ) ;
$this -> document -> setRobots ( 'noindex, follow' ) ;
}
/* Конец добавление альтернативной канонической ссылки */
$this -> data [ 'heading_title' ] = $this -> language -> get ( 'heading_title' ) ;
$this -> data [ 'text_index' ] = $this -> language -> get ( 'text_index' ) ;
$this -> data [ 'text_empty' ] = $this -> language -> get ( 'text_empty' ) ;
$this -> data [ 'index_url' ] = $this -> url -> link ( 'information/pvz' ) ;
$this -> data [ 'button_continue' ] = $this -> language -> get ( 'button_continue' ) ;
$this -> data [ 'breadcrumbs' ] = array ( ) ;
$this -> data [ 'breadcrumbs' ] [ ] = array ( 'text' => $this -> language -> get ( 'text_home' ) ,
'text_breadcrumbs_title' => $this -> language -> get ( 'text_breadcrumbs_title' ) ,
'href' => $this -> url -> link ( 'common/home' ) ,
'separator' => false
) ;
$this -> data [ 'breadcrumbs' ] [ ] = array ( 'text' => $this -> language -> get ( 'text_brand' ) ,
'text_breadcrumbs_title' => $this -> language -> get ( 'text_brand' ) ,
'href' => $this -> url -> link ( 'information/pvz' ) ,
'separator' => $this -> language -> get ( 'text_separator' )
) ;
$this -> data [ 'categories' ] = array ( ) ;
if ( file_exists ( 'catalog/view/javascript/downloadJs/pvz_list.xml' ) ) { } else {
}
$results = $xml -> Pvz ;
foreach ( $results as $result ) {
$key = '0 - 9' ;
} else {
}
if ( ! isset ( $this -> data [ 'pvzes' ] [ $key ] ) ) { $this -> data [ 'categories' ] [ $key ] [ 'city' ] = $key ;
}
$this -> data [ 'categories' ] [ $key ] [ 'pvz' ] [ ] = array ( 'code' => $result [ 'Code' ] ,
'city' => $result [ 'City' ] ,
'name' => $result [ 'Name' ] ,
'address' => $result [ 'Address' ] ,
'phone' => $result [ 'Phone' ] ,
'email' => $result [ 'Email' ] ,
'work_time' => $result [ 'WorkTime' ] ,
'coord_x' => $result [ 'coordX' ] ,
'coord_y' => $result [ 'coordY' ]
) ;
}
asort ( $this -> data [ 'categories' ] ) ;
$this -> data [ 'continue' ] = $this -> url -> link ( 'common/home' ) ;
if ( file_exists ( DIR_TEMPLATE
. $this -> config -> get ( 'config_template' ) . '/template/information/pvz_list.tpl' ) ) { $this -> template = $this -> config -> get ( 'config_template' ) . '/template/information/pvz_list.tpl' ;
} else {
$this -> template = 'default/template/information/pvz_list.tpl' ;
}
'common/column_left' ,
'common/column_right' ,
'common/content_top' ,
'common/content_bottom' ,
'common/footer' ,
'common/header'
) ;
$this -> response -> setOutput ( $this -> render ( ) ) ;
}
}
?>
Будьте добры помогите объединить данные из массива по одинаковым данным из ключа City.
Поиск в теме | Версия для печати
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB