Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
1

Функция с параметром двумерного масива

04.02.2013, 17:53. Просмотров 672. Ответов 16
Метки нет (Все метки)

Доброго времени суток форумчане, Как мне можно сделать функцию которая принимала бы имя двумерного массива, и что бы я это имя использовал внутри функции?

Вот к примеру код без функции:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
$pages_naa = @ceil(count($mas_allapp)/$appmain_limit);
        $flag_naa = 0;
        for($z = 0; $z < $pages_naa; $z++){
            if($flag_naa == 0) $tpl->result['content'] .= "<div class=\"$appmain_pageclass\">";
            if($flag_naa != 0) $tpl->result['content'] .= "<div class=\"$appmain_pageclass\" style=\"display:none;\">";
            
            
            
            $start_n = $z*$appmain_limit;
            $end_n = $start_n+$appmain_limit;
            if($end_n > count($mas_allapp)) $end_n = count($mas_allapp);
            for($f = $start_n; $f < $end_n; $f++){
                $tpl->copy_template = preg_replace ( "#\{date=(.+?)\}#ie", "langdate('\\1', '{$mas_allapp[$f]['date']}')", $tpl->copy_template );
                if($config['hide_full_link'] == "yes" ) $tpl3->set_block( "'\\[full-link\\](.*?)\\[/full-link\\]'si", "" );
                else{
                    $tpl->set( '[full-link]', "<a href=\"" . $mas_allapp[$f]['full-link'] . "\">" );
                    $tpl->set( '[/full-link]', "</a>" );
                }
                $tpl->set( '{full-link}', $mas_allapp[$f]['full-link']);
                if( $mas_allapp[$f]['allow_rate'] ) {
                    $tpl->set( '{rating}', $mas_allapp[$f]['rating']);
                    $tpl->set( '{vote-num}', $mas_allapp[$f]['vote_num']);
                    $tpl->set( '[rating]', "" );
                    $tpl->set( '[/rating]', "" );
                } else {
                    $tpl->set( '{rating}', "" );
                    $tpl->set( '{vote-num}', "" );
                    $tpl->set_block( "'\\[rating\\](.*?)\\[/rating\\]'si", "" );
                }
                if($is_logged){
                    $fav_arr = explode(',', $member_id['favorites']);
                    if(!in_array($mas_allapp[$f]['id'], $fav_arr) or $config['allow_cache'] == "yes") $tpl->set( '{favorites}', "<a id=\"fav-id-" . $mas_allapp[$f]['id'] . "\" href=\"$PHP_SELF?do=favorites&amp;doaction=add&amp;id=" . $mas_allapp[$f]['id'] . "\"><img src=\"" . $config['http_home_url'] . "templates/{$config['skin']}/dleimages/plus_fav.gif\" onclick=\"doFavorites('" . $mas_allapp[$f]['id'] . "', 'plus'); return false;\" title=\"" . $lang['news_addfav'] . "\" style=\"vertical-align: middle;border: none;\" alt=\"\" /></a>" );
                    else $tpl->set('{favorites}', "<a id=\"fav-id-" . $mas_allapp[$f]['id'] . "\" href=\"$PHP_SELF?do=favorites&amp;doaction=del&amp;id=" . $mas_allapp[$f]['id'] . "\"><img src=\"" . $config['http_home_url'] . "templates/{$config['skin']}/dleimages/minus_fav.gif\" onclick=\"doFavorites('" . $mas_allapp[$f]['id'] . "', 'minus'); return false;\" title=\"" . $lang['news_minfav'] . "\" style=\"vertical-align: middle;border: none;\" alt=\"\" /></a>" );
                } else $tpl->set('{favorites}', "");
                
                $tpl->set( '{evaluation}', $mas_allapp[$f]['rating_ocencka']);  
                $tpl->set('{author}', $mas_allapp[$f]['author']);
                $tpl->set( '{login}', $mas_allapp[$f]['login']);  
                $mas_ExeNedeli['title'] = stripslashes($mas_allapp[$f]['title']);
                if(preg_match( "#\\{title limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches)){
                    $count= intval($matches[1]);
                    $mas_allapp[$f]['title'] = strip_tags($mas_allapp[$f]['title']);
                    if($count AND dle_strlen($mas_allapp[$f]['title'], $config['charset']) > $count){
                        $mas_allapp[$f]['title'] = dle_substr($mas_allapp[$f]['title'], 0, $count, $config['charset']); 
                        if(($temp_dmax = dle_strrpos($mas_allapp[$f]['title'], ' ', $config['charset'])))
                            $mas_allapp[$f]['title'] = dle_substr($mas_allapp[$f]['title'], 0, $temp_dmax, $config['charset']); 
                    }
                    $tpl->set( $matches[0], $mas_allapp[$f]['title']);
                } else $tpl->set( '{title}', $mas_allapp[$f]['title']);
                $tpl->set('{link-category}', $mas_allapp[$f]['my_cat_link']);
                $tpl->set('{comments-num}', $mas_allapp[$f]['comm_num']);
                $tpl->set('{views}', $mas_allapp[$f]['news_read']);
                if($mas_allapp[$f]['allow_comm']){
                    $tpl->set( '[com-link]', "<a href=\"" . $mas_allapp[$f]['full-link'] . "#comment\">" );
                    $tpl->set( '[/com-link]', "</a>" );
                }else $tpl->set_block( "'\\[com-link\\](.*?)\\[/com-link\\]'si", "" );
                $news_find = array ('{category}' => $mas_allapp[$f]['my_cat'], '{news-id}' => $mas_allapp[$f]['id'], '{php-self}' => $PHP_SELF, '{PAGEBREAK}' => '', '{rssdate}' => date( "r", $mas_allapp[$f]['date'] ), '{rssauthor}' => $mas_allapp[$f]['autor'], '{approve}' => '' );
                $tpl->set( '', $news_find);
                if($is_logged){
                    $fav_arr = explode( ',', $member_id['favorites'] );
                    if( ! in_array( $mas_allapp[$f]['id'], $fav_arr ) or $config['allow_cache'] == "yes" ) $tpl->set( '{favorites}', "<a id=\"fav-id-" . $mas_allapp[$f]['id'] . "\" href=\"$PHP_SELF?do=favorites&amp;doaction=add&amp;id=" . $mas_allapp[$f]['id'] . "\"><img src=\"" . $config['http_home_url'] . "templates/{$config['skin']}/dleimages/plus_fav.gif\" onclick=\"doFavorites('" . $mas_allapp[$f]['id'] . "', 'plus'); return false;\" title=\"" . $lang['news_addfav'] . "\" style=\"vertical-align: middle;border: none;\" alt=\"\" /></a>" );
                    else $tpl->set( '{favorites}', "<a id=\"fav-id-" . $mas_allapp[$f]['id'] . "\" href=\"$PHP_SELF?do=favorites&amp;doaction=del&amp;id=" . $mas_allapp[$f]['id'] . "\"><img src=\"" . $config['http_home_url'] . "templates/{$config['skin']}/dleimages/minus_fav.gif\" onclick=\"doFavorites('" . $mas_allapp[$f]['id'] . "', 'minus'); return false;\" title=\"" . $lang['news_minfav'] . "\" style=\"vertical-align: middle;border: none;\" alt=\"\" /></a>" );
                    $tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $mas_allapp[$f]['id'] . "', 'news')\">" );
                    $tpl->set( '[/complaint]', "</a>" );
                } else {
                    $tpl->set('{favorites}', "" );
                    $tpl->set_block( "'\\[complaint\\](.*?)\\[/complaint\\]'si", "" );
                }
                if( $row['allow_comm'] ) {
            
                    $tpl->set( '[com-link]', "<a href=\"" . $full_link . "#comment\">" );
                    $tpl->set( '[/com-link]', "</a>" );
                
                } else
                    $tpl->set_block( "'\\[com-link\\](.*?)\\[/com-link\\]'si", "" );
                
                if(preg_match("#\\{short-story limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches)){
                    $count= intval($matches[1]);
                    $mas_allapp[$f]['short_story'] = str_replace("</p><p>", " ", $mas_allapp[$f]['short_story']);
                    $mas_allapp[$f]['short_story'] = strip_tags($mas_allapp[$f]['short_story'], "<br>");
                    $mas_allapp[$f]['short_story'] = trim(str_replace("<br>", " ", str_replace("<br />", " ", str_replace("\n", " ", str_replace("\r", "", $mas_allapp[$f]['short_story'])))));
                    if($count AND dle_strlen($mas_allapp[$f]['short_story'], $config['charset']) > $count ){        
                        $mas_allapp[$f]['short_story'] = dle_substr($mas_allapp[$f]['short_story'], 0, $count, $config['charset']); 
                        if(($temp_dmax = dle_strrpos($mas_allapp[$f]['short_story'], ' ', $config['charset']))) 
                            $mas_allapp[$f]['short_story'] = dle_substr($mas_allapp[$f]['short_story'], 0, $temp_dmax, $config['charset']);
                    }
                    $tpl->set($matches[0], $mas_allapp[$f]['short_story']);
                } else $tpl->set('{short-story}', $mas_allapp[$f]['short_story']);
                    
                // Обработка дополнительных полей
                if( strpos( $tpl->copy_template, "[xfvalue_" ) !== false OR strpos( $tpl->copy_template, "[xfgiven_" ) !== false ) { $xfound = true; $xfields = xfieldsload();}
                else $xfound = false;
                if( $xfound ) {
                    $xfieldsdata = xfieldsdataload($mas_allapp[$f]['xfields']);
                    foreach ( $xfields as $value ) {
                        $preg_safe_name = preg_quote( $value[0], "'" );
                        if ( $value[6] AND !empty( $xfieldsdata[$value[0]] ) ) {
                            $temp_array = explode( ",", $xfieldsdata[$value[0]] );
                            $value3 = array();
                            foreach ($temp_array as $value2) {
                                $value2 = trim($value2);
                                $value2 = str_replace("'", "'", $value2);
                                if( $config['allow_alt_url'] == "yes" ) $value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
                                else $value3[] = "<a href=\"$PHP_SELF?do=xfsearch&amp;xf=" . urlencode( $value2 ) . "\">" . $value2 . "</a>";
                            }
                            $xfieldsdata[$value[0]] = implode(", ", $value3);
                            unset($temp_array);
                            unset($value2);
                            unset($value3);
                        }
                        if( empty( $xfieldsdata[$value[0]] ) ) {
                            $tpl->copy_template = preg_replace( "'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
                            $tpl->copy_template = str_replace( "[xfnotgiven_{$value[0]}]", "", $tpl->copy_template );
                            $tpl->copy_template = str_replace( "[/xfnotgiven_{$value[0]}]", "", $tpl->copy_template );
                        } else {
                            $tpl->copy_template = preg_replace( "'\\[xfnotgiven_{$preg_safe_name}\\](.*?)\\[/xfnotgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
                            $tpl->copy_template = str_replace( "[xfgiven_{$value[0]}]", "", $tpl->copy_template );
                            $tpl->copy_template = str_replace( "[/xfgiven_{$value[0]}]", "", $tpl->copy_template );
                        }
                        $xfieldsdata[$value[0]] = stripslashes( $xfieldsdata[$value[0]] );
                        if ( preg_match( "#\\[xfvalue_{$preg_safe_name} limit=['\"](.+?)['\"]\\]#i", $tpl->copy_template, $matches ) ) {
                            $count= intval($matches[1]);
                            $xfieldsdata[$value[0]] = str_replace( "</p><p>", " ", $xfieldsdata[$value[0]] );
                            $xfieldsdata[$value[0]] = strip_tags( $xfieldsdata[$value[0]], "<br>" );
                            $xfieldsdata[$value[0]] = trim(str_replace( "<br>", " ", str_replace( "<br />", " ", str_replace( "\n", " ", str_replace( "\r", "", $xfieldsdata[$value[0]] ) ) ) ));
                            if( $count AND dle_strlen( $xfieldsdata[$value[0]], $config['charset'] ) > $count ) {
                                $xfieldsdata[$value[0]] = dle_substr( $xfieldsdata[$value[0]], 0, $count, $config['charset'] );
                                if( ($temp_dmax = dle_strrpos( $xfieldsdata[$value[0]], ' ', $config['charset'] )) ) 
                                    $xfieldsdata[$value[0]] = dle_substr( $xfieldsdata[$value[0]], 0, $temp_dmax, $config['charset'] );
                            }
                            $tpl->set( $matches[0], $xfieldsdata[$value[0]] );
                        } else  $tpl->copy_template = str_replace( "[xfvalue_{$value[0]}]", $xfieldsdata[$value[0]], $tpl->copy_template );
                    }
                }
                // Обработка дополнительных полей
                $tpl->copy_template = preg_replace_callback ( "#\\{xfvalue(.+?)\\}#i", "doppolya1", $tpl->copy_template );
                $tpl->copy_template = preg_replace ( "#\{downloads=\"(.+?)\"\}#ie", "downfils('\\1', '{$mas_allapp[$f]['id']}')", $tpl->copy_template );
                //$tpl->set( '{downloads}', $mas_allapp[$f]['id']);
                $tpl->compile( 'content' );
            }
            if($flag_naa == 0) $tpl->result['content'] .= "</div>";
            if($flag_naa != 0) $tpl->result['content'] .= "</div>";
            $flag_naa++; 
        }
        $tpl->result['content'] = "<div class=\"blockpost\">".$tpl->result['content']."</div>";
Добавлено через 12 минут
Давайте для простоты на маленьком примере
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
for($k = 0; $k < count($mas_AppMain); $k++){
   $catr = explode( ',', $mas_AppMain[$k]['cat']);
   $catr1 = array_intersect($appmain_cat, $catr);
   if(count($catr1) != 0){
      $mas_allapp[$nmaa]['allow_rate'] = $mas_AppMain[$k]['allow_rate'];
      $mas_allapp[$nmaa]['allow_comm'] = $mas_AppMain[$k]['allow_comm'];
      $mas_allapp[$nmaa]['cat'] = $mas_AppMain[$k]['cat'];
      $mas_allapp[$nmaa]['rey'] = $mas_AppMain[$k]['rey'];
      $mas_allapp[$nmaa]['id'] = $mas_AppMain[$k]['id'];
      $mas_allapp[$nmaa]['comm_num'] = $mas_AppMain[$k]['comm_num'];
      $mas_allapp[$nmaa]['news_read'] = $mas_AppMain[$k]['news_read'];
      $mas_allapp[$nmaa]['short_story'] = $mas_AppMain[$k]['short_story'];
      $mas_allapp[$nmaa]['title'] = $mas_AppMain[$k]['title'];
      $mas_allapp[$nmaa]['full-link'] = $mas_AppMain[$k]['full-link'];
      $mas_allapp[$nmaa]['my_cat_link'] = $mas_AppMain[$k]['my_cat_link'];
      $mas_allapp[$nmaa]['my_cat'] = $mas_AppMain[$k]['my_cat'];
      $mas_allapp[$nmaa]['date'] = $mas_AppMain[$k]['date'];
      $mas_allapp[$nmaa]['xfields'] = $mas_AppMain[$k]['xfields'];
      $mas_allapp[$nmaa]['vote_num'] = $mas_AppMain[$k]['vote_num'];
      $mas_allapp[$nmaa]['rating'] = $mas_AppMain[$k]['rating'];
      $mas_allapp[$nmaa]['author'] = $mas_AppMain[$k]['author'];
      $mas_allapp[$nmaa]['login'] = $mas_AppMain[$k]['login'];
      $mas_allapp[$nmaa]['rating_ocencka'] = $mas_AppMain[$k]['rating_ocencka'];
      $mas_allapp[$nmaa]['rating1'] = $mas_AppMain[$k]['rating1'];
      $nmaa++;
   }
}
Где $mas_AppMain глобальный двумерный массив который хранит в себе все новости
и мы отбираем те новости с этого массива который совпадают с категориями глобальной переменной $appmain_cat. И записуем в новый массив $mas_allapp

а теперь нужно создать функцию которая будет принимать имя двумерного массива, в нашем случаи это глобальный массив $mas_AppMain, и может подумает "Зачем его делать глобальным если внутри функции можно объявить как глобальный", Я хочу задавать имя того глобального массива который мне нужен, у меня их несколько!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2013, 17:53
Ответы с готовыми решениями:

Заменить элементы двумерного массива из другого масива
Заменить элементы двумерного массива из другого масива &lt;?php ...

Функция с первым нулевым параметром
Добрый вечер, Господа! У меня следующий вопрос. К примеру у нас имеется...

Сортировка масива
Есть 2 масива похожих друг на друга Первый Array ( =&gt; Array ...

вывод масива
как вывести такой масив Array ( =&gt;...

Сортировка масива по дате
Здраствуйте подскажите как отсортировать масив по дате вот пример как есть...

16
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
04.02.2013, 18:14 2
Цитата Сообщение от gorin Посмотреть сообщение
который хранит в себе все новости
зацехм вам все новости , почему не достать из базы сразу только нужные , тогда и извращаться не придется ?
1
gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
04.02.2013, 18:16  [ТС] 3
Цитата Сообщение от crautcher Посмотреть сообщение
зацехм вам все новости , почему не достать из базы сразу только нужные , тогда и извращаться не придется ?
это не важно мне важно как мне передать в функцию параметр двумерного масива
0
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
04.02.2013, 18:24 4
я непонял что именно , вот есть
PHP
1
$array['key1']['key2'] = 'value';
что из этого нужно вам передать ?
1
gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
04.02.2013, 18:27  [ТС] 5
Цитата Сообщение от crautcher Посмотреть сообщение
я непонял что именно , вот есть
PHP
1
$array['key1']['key2'] = 'value';
что из этого нужно вам передать ?
Вот как то так нужно
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    function reqmas($mas = array(array())){
        $nmaa = 0;
        $mas_allapp = array(array());
        for($k = 0; $k < count($mas); $k++){
            $catr = explode( ',', $mas[$k]['cat']);
            $catr1 = array_intersect($appmain_cat, $catr);
            if(count($catr1) != 0){
                $mas_allapp[$nmaa]['allow_rate'] = $mas[$k]['allow_rate'];
                $mas_allapp[$nmaa]['allow_comm'] = $mas[$k]['allow_comm'];
                $mas_allapp[$nmaa]['cat'] = $mas[$k]['cat'];
                $mas_allapp[$nmaa]['rey'] = $mas[$k]['rey'];
                $mas_allapp[$nmaa]['id'] = $mas[$k]['id'];
                $mas_allapp[$nmaa]['comm_num'] = $mas[$k]['comm_num'];
                $mas_allapp[$nmaa]['news_read'] = $mas[$k]['news_read'];
                $mas_allapp[$nmaa]['short_story'] = $mas[$k]['short_story'];
                $mas_allapp[$nmaa]['title'] = $mas[$k]['title'];
                $mas_allapp[$nmaa]['full-link'] = $mas[$k]['full-link'];
                $mas_allapp[$nmaa]['my_cat_link'] = $mas[$k]['my_cat_link'];
                $mas_allapp[$nmaa]['my_cat'] = $mas[$k]['my_cat'];
                $mas_allapp[$nmaa]['date'] = $mas[$k]['date'];
                $mas_allapp[$nmaa]['xfields'] = $mas[$k]['xfields'];
                $mas_allapp[$nmaa]['vote_num'] = $mas[$k]['vote_num'];
                $mas_allapp[$nmaa]['rating'] = $mas[$k]['rating'];
                $mas_allapp[$nmaa]['author'] = $mas[$k]['author'];
                $mas_allapp[$nmaa]['login'] = $mas[$k]['login'];
                $mas_allapp[$nmaa]['rating_ocencka'] = $mas[$k]['rating_ocencka'];
                $mas_allapp[$nmaa]['rating1'] = $mas[$k]['rating1'];
                $nmaa++;
            }
        }
        return $mas_allapp;
    }
    echo "<pre>";
    print_r(reqmas($mas_AppMain));
    echo "</pre>";
0
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
04.02.2013, 18:37 6
Цитата Сообщение от gorin Посмотреть сообщение
хочу задавать имя того глобального массива который мне нужен
aaaaaaaaaa вы хотите динамично подключать глобальные переменные
PHP
1
2
3
4
5
6
7
8
9
10
<?
$a = 1;
$b = 2;
 
function EchoGlobal($varname){
 global $$varname;
 echo $$varname;
}
EchoGlobal('a');
EchoGlobal('b');
1
gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
04.02.2013, 18:41  [ТС] 7
Цитата Сообщение от crautcher Посмотреть сообщение
aaaaaaaaaa вы хотите динамично подключать глобальные переменные
PHP
1
2
3
4
5
6
7
8
9
10
<?
$a = 1;
$b = 2;
 
function EchoGlobal($varname){
 global $$varname;
 echo $$varname;
}
EchoGlobal('a');
EchoGlobal('b');
мне нужно в параметр функции передать массив двумерный
0
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
04.02.2013, 18:43 8
ну и передавайте , чем он отличается от других переменых - всё также
1
gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
04.02.2013, 18:46  [ТС] 9
Цитата Сообщение от crautcher Посмотреть сообщение
ну и передавайте , чем он отличается от других переменых - всё также
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function reqmas($mas){
global $$mas;        
$nmaa = 0;
        $mas_allapp = array(array());
        for($k = 0; $k < count($mas); $k++){
            $catr = explode( ',', $mas[$k]['cat']);
            $catr1 = array_intersect($appmain_cat, $catr);
            if(count($catr1) != 0){
                $mas_allapp[$nmaa]['allow_rate'] = $mas[$k]['allow_rate'];
                $mas_allapp[$nmaa]['allow_comm'] = $mas[$k]['allow_comm'];
                $mas_allapp[$nmaa]['cat'] = $mas[$k]['cat'];
                $mas_allapp[$nmaa]['rey'] = $mas[$k]['rey'];
                $mas_allapp[$nmaa]['id'] = $mas[$k]['id'];
                $mas_allapp[$nmaa]['comm_num'] = $mas[$k]['comm_num'];
                $mas_allapp[$nmaa]['news_read'] = $mas[$k]['news_read'];
                $mas_allapp[$nmaa]['short_story'] = $mas[$k]['short_story'];
                $mas_allapp[$nmaa]['title'] = $mas[$k]['title'];
                $mas_allapp[$nmaa]['full-link'] = $mas[$k]['full-link'];
                $mas_allapp[$nmaa]['my_cat_link'] = $mas[$k]['my_cat_link'];
                $mas_allapp[$nmaa]['my_cat'] = $mas[$k]['my_cat'];
                $mas_allapp[$nmaa]['date'] = $mas[$k]['date'];
                $mas_allapp[$nmaa]['xfields'] = $mas[$k]['xfields'];
                $mas_allapp[$nmaa]['vote_num'] = $mas[$k]['vote_num'];
                $mas_allapp[$nmaa]['rating'] = $mas[$k]['rating'];
                $mas_allapp[$nmaa]['author'] = $mas[$k]['author'];
                $mas_allapp[$nmaa]['login'] = $mas[$k]['login'];
                $mas_allapp[$nmaa]['rating_ocencka'] = $mas[$k]['rating_ocencka'];
                $mas_allapp[$nmaa]['rating1'] = $mas[$k]['rating1'];
                $nmaa++;
            }
        }
        return $mas_allapp;
    }
0
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
04.02.2013, 18:52 10
2 варианта :
1 это диманическое имя тогда $mas будет именем перемнной , и следовательно везде надо указывать $$ двойной доллар где обращение идет к этой перемнной
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?
function reqmas($mas){
global $$mas;        
$nmaa = 0;
        $$mas_allapp = array(array());
        for($k = 0; $k < count($$mas); $k++){
            $catr = explode( ',', $$mas[$k]['cat']);
            $catr1 = array_intersect($appmain_cat, $catr);
            if(count($catr1) != 0){
                $mas_allapp[$nmaa]['allow_rate'] = $$mas[$k]['allow_rate'];
                $mas_allapp[$nmaa]['allow_comm'] = $$mas[$k]['allow_comm'];
                $mas_allapp[$nmaa]['cat'] = $$mas[$k]['cat'];
                $mas_allapp[$nmaa]['rey'] = $$mas[$k]['rey'];
                $mas_allapp[$nmaa]['id'] = $$mas[$k]['id'];
                $mas_allapp[$nmaa]['comm_num'] = $$mas[$k]['comm_num'];
                $mas_allapp[$nmaa]['news_read'] = $$mas[$k]['news_read'];
                $mas_allapp[$nmaa]['short_story'] = $$mas[$k]['short_story'];
                $mas_allapp[$nmaa]['title'] = $$mas[$k]['title'];
                $mas_allapp[$nmaa]['full-link'] = $$mas[$k]['full-link'];
                $$mas_allapp[$nmaa]['my_cat_link'] = $$mas[$k]['my_cat_link'];
                $mas_allapp[$nmaa]['my_cat'] = $$mas[$k]['my_cat'];
                $mas_allapp[$nmaa]['date'] = $$mas[$k]['date'];
                $mas_allapp[$nmaa]['xfields'] = $$mas[$k]['xfields'];
                $mas_allapp[$nmaa]['vote_num'] = $$mas[$k]['vote_num'];
                $mas_allapp[$nmaa]['rating'] = $$mas[$k]['rating'];
                $mas_allapp[$nmaa]['author'] = $$mas[$k]['author'];
                $mas_allapp[$nmaa]['login'] = $$mas[$k]['login'];
                $mas_allapp[$nmaa]['rating_ocencka'] = $$mas[$k]['rating_ocencka'];
                $mas_allapp[$nmaa]['rating1'] = $$mas[$k]['rating1'];
                $nmaa++;
            }
        }
        return $mas_allapp;
    }
второй передавать сразу массив по ссылке :
тогда никаких global не нужно
PHP
1
2
3
4
5
6
7
8
<?
function AddToArrayTest(&$mas){     
$mas[1][1] = 'test';
}
 
$array[1][1] = 'trololo';
AddToArrayTest($array);
echo $array[1][1];
на экране test
1
gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
04.02.2013, 19:13  [ТС] 11
crautcher, И тут новая проблема, массив $appmain_cat за функцией работает, выводит свое содержимое, а вот внутри функции вообще не работает, пробивал выставить как глобально, без результатно!
0
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
04.02.2013, 19:21 12
ну так его обьявить нужно тоже как global
PHP
1
2
3
4
5
 ...
   $catr = explode( ',', $mas_AppMain[$k]['cat']);
   global $appmain_cat; 
   $catr1 = array_intersect($appmain_cat, $catr);
...
1
gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
04.02.2013, 19:23  [ТС] 13
crautcher, Пробивал, но безрезультатно
0
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
04.02.2013, 19:26 14
Цитата Сообщение от gorin Посмотреть сообщение
а вот внутри функции вообще не работает
так может не в нем дело , проведите дебаг пошаговый убивая скрипт шаг за шагом , смотря что чем становиться
PHP
1
2
3
4
5
6
7
...
   $catr = explode( ',', $mas_AppMain[$k]['cat']);
   global $appmain_cat; 
   var_dump($catr , $appmain_cat  );
   exit();
   $catr1 = array_intersect($appmain_cat, $catr);
...
1
gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
04.02.2013, 19:31  [ТС] 15
Вот в том то и проблема что внутри функции не понимает что за переменная $appmain_cat, а все остальное работает

Добавлено через 2 минуты
Я внутри функции создаю еще одну функцию!, это тоже может влиять на эту переменную!
0
crautcher
2019 / 1991 / 463
Регистрация: 27.05.2011
Сообщений: 6,837
04.02.2013, 19:36 16
так делать очень не рекомендуется , функции можно вызывать одна в другой , но нe создавать
PHP
1
2
3
4
5
6
#можно:
function a() {}
function b() {  a(); }
function c() { a(); b(); }
#лучше так не делать
function a() { function b(){} }
1
gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
04.02.2013, 19:41  [ТС] 17
crautcher, Большое спасибо, работает отлично!
0
04.02.2013, 19:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2013, 19:41

Редактирование записей масива
$db = mysql_connect($server, $user, $password) or die(&quot;Не вдалося : &quot;...

Вывод не всего масива
есть генерируемая форма с Чекбоксам. РНР, выводит все из Таблици. и все Id...

Условие для масива
Как правильно написать условие для масива: Из БД идет поиск $name3 по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru