如何在PHP Smarty中优化这段代码?
现在我有一个代码让我困惑,有一个简单的代码。
$sql_set_land = "select * from set_new_land where id_rent_house =".Tools::getValue("id_rent_house");
//print_r($sql_set_land);
$n_land = Db::rowSQL($sql_set_land,true);
$landTitle1 = $n_land['landTitle1'];
$landTitle2 = $n_land['landTitle2'];
$landBuilderNumber = $n_land['landBuilderNumber'];
$landLandMark = $n_land['landLandMark'];
$land_1 = $n_land['land_1'];
$land_2 = $n_land['land_2'];
$land_3 = $n_land['land_3'];
...
...
...
$land_30 = $n_land['land_30'];
$land_31 = $n_land['land_31'];
$land_32 = $n_land['land_32'];
当我搜索需要推送值的代码时。
$this->context->smarty->assign([
'park_space' =>$park_space,
'recording_data' =>$recording_data,
'clode_number' => $clode_number,
'ad_choose_top' => $ad_choose_top,
'ad_choose_type' => $ad_choose_type,
'ad_choose_payment_type' => $ad_choose_payment_type,
'ad_choose_payment_type1' => $ad_choose_payment_type1,
'landTitle1' => $landTitle1,
'landTitle2' => $landTitle2,
'landBuilderNumber' => $landBuilderNumber,
'landLandMark' => $landLandMark,
'land_1' => $land_1,
'land_2' => $land_2,
'land_3' => $land_3,
...
...
...
'land_30' => $land_30,
'land_31' => $land_31,
'land_32' => $land_32,
优化如何发挥作用?我能写到数组吗?如果它可以写入数组,我该怎么办?
您的问题不在PHP代码中,而是在数据库的设计中。任何时候需要在列名中包含数字都表明您没有对数据进行规范化。
如果您扩展了*
(这通常是一种很好的做法,以避免在对数据库进行更改时出现意外),则必须编写以下内容:
select
landTitle1,
landTitle2,
landBuilderNumber,
landLandMark,
land_1,
land_2,
land_3,
land_4,
land_5,
land_6,
land_7,
land_8,
land_9,
land_10,
land_11,
land_12,
land_13,
land_14,
land_15,
land_16,
land_17,
land_18,
land_19,
land_20,
land_21,
land_22,
land_23,
land_24,
land_25,
land_26,
land_27,
land_28,
land_29,
land_30,
land_31,
land_32
from set_new_land
where id_rent_house = :id
对于一个正常的数据库,您可以编写如下内容:
select
SND.landTitle1,
SND.landTitle2,
SND.landBuilderNumber,
SND.landLandMark,
L.landNumber,
L.land
from set_new_land as SND
join lands as L
On L.set_new_land_id = SND.set_new_land_id
where SND.id_rent_house = :id
那么在PHP中,可以使用array_column
函数:
$lands = array_column($dbResults, 'land');
// or, if the land numbers are important
$lands = array_column($dbResults, 'land', 'landNumber');
但是,如果您无法修复数据,可以在PHP中将其转换为更合理的形式,使用一个从1到32的循环:
$lands = [];
for ( $landNumber=1; $landNumber<=32; $landNumber++ ) {
$columnName = 'land_' . $landNumber;
$lands[] = $messyDbResults[ $columnName ];
}
如何将两个方法合并成一个方法 如图parentValues = ['BC', 'BC-SRV', 'BC-SRV-COM'], 想得到的是选中的树组arrSelectedFacets = ['BC-SRV-COM-FTP', 'BC-SRV-COM-TEL'] 如果 BC-SRV-COM 下的子节点都选中,则arrSelectedFacets=['BC-SRV-COM']
我认为代码(如下)已经优化(只需使用比相同逻辑的初始版本更少的变量) > 在优化过程中,我应该考虑哪些因素? 这是代码(也在jsfiddle上) 这是代码的解释。“处理”函数在数组中查找相同的值,对于每个相同的值,它通过将一个数字挂起到该值来更改值,“数字”表示它在数组中找到的值的计数。 例如arr=["x","x","y","z"]将返回["x(1)","x(2)","y","z"]"y"和"z
我已经开始学习JavaScript,我试图制作一个加载条的动画,但我不知道如何使它在条到达终点后重复这个功能,我想也许通过一个循环我可以得到我想要的结果,但我仍然在学习循环,我尝试了不同的方法,改变了整个代码,但没有任何效果。 有人能帮我吗?谢谢你抽出时间。
了解如何在 Dreamweaver 中清除代码、检查浏览器兼容性、验证 XML 文档并使页面符合 XHTML 规范。 清理代码 您可以自动删除空标签,合并嵌套 font 标签,以及通过其它方法改善杂乱或难以辨识的 HTML 或 XHTML 代码。 有关如何清理从 Microsoft Word 文档生成的 HTML 的信息,请参阅打开和编辑现有文档。 在打开的文档中,选择“工具”>“清理 HTML”
问题内容: 我正在使用此代码来检测图像中的绿色。 问题在于此迭代确实很慢。 如何使其更快?如果使用的是numpy,如何以numpy的方式进行? 问题答案: 简单尝试一下:
如何改进这些代码?我试着在API29的应用程序上使用它,但每次我在构建后打开应用程序时,我的应用程序就崩溃了。我在Stackoverflow中找到了这些代码,但由于SharedPefrences等一些功能被弃用而不再工作,我尝试使用新的SharedPeference管理器,但应用程序仍然崩溃。 然后我有,它应该指导用户选择一个布局为XML的选项。 这是使用无线电组的ChoiceActivity的X