Sanu0074

Sanu0074
Рейтинг
110
Регистрация
31.08.2012

Sujcnm,

Sujcnm:
Но там используют smtp.mail.ru

ограничения типа как у яндекса и гугла есть? (на кол-во писем в день или какое либо ограничение по контенту). Подробнее про это где букварь есть?

Sujcnm:
а почему Вы хотите использовать Windows для php скриптов?

потому что много приложений крутится на этом серваке помимо php скриптов

Sujcnm:
Windows жрет ресурсов намного больше чем linux

ресурсы позволяют кормить винду)

Artisan:
Цель какая?

отлаживать рендеринг сайтов

[umka], RAS, а без виртуалок на win 7 пак браузеров можно поставить? или это прям единственный способ?

LEOnidUKG, ваша функция работает, спасибо

---------- Добавлено 09.03.2015 в 19:50 ----------

LEOnidUKG, я сделал так

    private function mapTree($arr, $id_key = 'id', $pid_key = 'p_id') {

$structure = array();
while ($elem = array_shift($arr)) {
if (isset($structure[$elem[$id_key]])) {
$elem['childs'] = $structure[$elem[$id_key]];
unset($structure[$elem[$id_key]]);
} else
$elem['childs'] = array();
if (isset($references[$elem[$pid_key]])) {
$references[$elem[$pid_key]]['childs'][$elem[$id_key]] = $elem;
$references[$elem[$id_key]] = & $references[$elem[$pid_key]]['childs'][$elem[$id_key]];
} else {
$structure[$elem[$pid_key]][$elem[$id_key]] = $elem;
$references[$elem[$id_key]] = & $structure[$elem[$pid_key]][$elem[$id_key]];
}
asort($references);
}
return $structure;
}

и получаю такой массив на выходе:

array(1) {

[0]=>
array(2) {
[21]=>
array(15) {
["id"]=>
string(2) "21"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(1) "0"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
string(4) "8189"
["date_create"]=>
string(19) "2015-03-09 12:47:50"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(8) "12123123"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
string(4) "sanu"
["adr_ava"]=>
string(11) "i6ZCbsol1z4"
["childs"]=>
array(0) {
}
}
[19]=>
array(15) {
["id"]=>
string(2) "19"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(1) "0"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
NULL
["date_create"]=>
string(19) "2015-03-09 12:47:43"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(16) "ыаывавыа"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
NULL
["adr_ava"]=>
NULL
["childs"]=>
array(1) {
[20]=>
array(15) {
["id"]=>
string(2) "20"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(2) "19"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
string(4) "8189"
["date_create"]=>
string(19) "2015-03-09 12:47:48"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(8) "12123123"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
string(4) "sanu"
["adr_ava"]=>
string(11) "i6ZCbsol1z4"
["childs"]=>
array(0) {
}
}
}
}
}
}

обходить его приходится двойным foreach несчитая childs, как сделать так чтобы на выходе получать примерно такой массив:

  array(2) {

array(15) {
["id"]=>
string(2) "21"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(1) "0"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
string(4) "8189"
["date_create"]=>
string(19) "2015-03-09 12:47:50"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(8) "12123123"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
string(4) "sanu"
["adr_ava"]=>
string(11) "i6ZCbsol1z4"
["childs"]=>
array(0) {
}
}
array(15) {
["id"]=>
string(2) "19"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(1) "0"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
NULL
["date_create"]=>
string(19) "2015-03-09 12:47:43"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(16) "ыаывавыа"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
NULL
["adr_ava"]=>
NULL
["childs"]=>
array(1) {
array(15) {
["id"]=>
string(2) "20"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(2) "19"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
string(4) "8189"
["date_create"]=>
string(19) "2015-03-09 12:47:48"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(8) "12123123"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
string(4) "sanu"
["adr_ava"]=>
string(11) "i6ZCbsol1z4"
["childs"]=>
array(0) {
}
}
}
}
}

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

edogs, ошибку нашел, она заключается в том что комментов то 3, а цикл почемуто 4 раза выполняется... почему такое может быть?

может посоветуете, вообще как-то иначе переписать функцию?

сделал так:

    private function mapTree($dataset) {

$tree = array();
foreach ($dataset as $id=>&$node) {
if(!isset($node['p_id'])){
$node['p_id']=0;
}
if (!$node['p_id']) {
$tree[$id] = &$node;
} else {
$dataset[$node['p_id']]['childs'][$id] = &$node;
}
}
return $tree;
}

теперь в конец массива добавляет лишний ["p_id"]=>0

array(2) {

[2]=>
array(14) {
["id"]=>
string(2) "19"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(1) "0"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
NULL
["date_create"]=>
string(19) "2015-03-09 12:47:43"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(16) "ыаывавыа"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
NULL
["adr_ava"]=>
NULL
}
[19]=>
array(2) {
["childs"]=>
array(2) {
[0]=>
array(14) {
["id"]=>
string(2) "21"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(2) "19"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
string(4) "8189"
["date_create"]=>
string(19) "2015-03-09 12:47:50"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(8) "12123123"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
string(4) "sanu"
["adr_ava"]=>
string(11) "i6ZCbsol1z4"
}
[1]=>
array(14) {
["id"]=>
string(2) "20"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(2) "19"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
string(4) "8189"
["date_create"]=>
string(19) "2015-03-09 12:47:48"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(8) "12123123"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
string(4) "sanu"
["adr_ava"]=>
string(11) "i6ZCbsol1z4"
}
}
["p_id"]=>
int(0)
}
}

edogs, p_id - везде нули, NULL не может там быть это 100%

Почему &$node - не к делу?

И вот допустим три коммента, два дочерних

array(2) {

[2]=>
array(14) {
["id"]=>
string(2) "19"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(1) "0"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
NULL
["date_create"]=>
string(19) "2015-03-09 12:47:43"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(16) "ыаывавыа"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
NULL
["adr_ava"]=>
NULL
}
[19]=>
array(1) {
["childs"]=>
array(2) {
[0]=>
array(14) {
["id"]=>
string(2) "21"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(2) "19"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
string(4) "8189"
["date_create"]=>
string(19) "2015-03-09 12:47:50"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(8) "12123123"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
string(4) "sanu"
["adr_ava"]=>
string(11) "i6ZCbsol1z4"
}
[1]=>
array(14) {
["id"]=>
string(2) "20"
["section"]=>
string(5) "match"
["el_id"]=>
string(3) "773"
["p_id"]=>
string(2) "19"
["avt_id"]=>
string(4) "8189"
["adr_id"]=>
string(4) "8189"
["date_create"]=>
string(19) "2015-03-09 12:47:48"
["like_p"]=>
string(1) "0"
["like_m"]=>
string(1) "0"
["text"]=>
string(8) "12123123"
["avt_login"]=>
string(4) "sanu"
["avt_ava"]=>
string(11) "i6ZCbsol1z4"
["adr_login"]=>
string(4) "sanu"
["adr_ava"]=>
string(11) "i6ZCbsol1z4"
}
}
}
}

Почему вылетает Undefined index: p_id к этой строке: if (!$node['p_id']) {

[umka], суть в том чтобы полученный массив в цикле перебрать, mapTree() и делает то самое дерево.

не могу понять причом выборка к дереву

LawbreaK, да, спасибо, поставил запись из браузера

LawbreaK, я не работаю, я учусь еще в школе)

Вот скрины настроек

1

2

Что нужно сделать?

Всего: 373