我正在从mysql查询中获取多维数组。有点我正在使用以下功能。但是我在里面使用了php eval()函数。排序:function array_sorter() { $sortstring = ''; $sortarray = func_get_arg( 0 ); $count = ( func_num_args() - 1 ) / 2; foreach ( $sortarray as $key => $row ) : for ( $i = 1; $i <= $count; $i++ ) { $str ="\$key" . $i . " = \"" . func_get_arg( $i * 2 - 1 ) . "\";"; $str = $str . "\$array" . $i . "[\$key] = \$row[\$key" . $i . "];"; $str = $str . "\$\$key" . $i . " = \$array" . $i . ";"; @eval( $str ); } endforeach; for ( $i = 1; $i <= $count; $i++ ) { $key1 = func_get_arg( $i * 2 - 1 ); $sortstring = $sortstring . "\$" . $key1 . ", " . func_get_arg( $i * 2 ) . ", "; } $sortstring = "array_multisort( " . $sortstring . "\$sortarray );"; eval( $sortstring ); return $sortarray;}用法:$this->tabelle = array_sorter( $table, 'Rank', 0 );大批:Array( [Club] => Club 1 [Number] => 4 [Win] => 4 [Draw] => 0 [Lost] => 0 [Pos_Points] => 8 [Neg_Points] => 0 [Pos_Goals] => 244 [Neg_Goals] => 194 [Diff_Points] => 8 [Diff_Goals] => 50 [Rank] => 1)Array( [Club] => Club 2 [Number] => 3 [Win] => 2 [Draw] => 1 [Lost] => 0 [Pos_Points] => 5 [Neg_Points] => 1 [Pos_Goals] => 173 [Neg_Goals] => 163 [Diff_Points] => 4 [Diff_Goals] => 10 [Rank] => 2)我是说该函数运行良好,但是我不知道使用eval()函数的安全性。有没有一种方法可以使它正常工作,而无需使用eval()来降低安全风险并使用最佳实践php编码标准(PHP 7)。
1 回答
- 1 回答
- 0 关注
- 129 浏览
添加回答
举报
0/150
提交
取消