我正在使用一些参数编写SQL查询创建者。在Java中,只需通过数组长度检查当前数组位置,就可以很容易地从for循环中检测数组的最后一个元素。
for(int i=0; i< arr.length;i++){
boolean isLastElem = i== (arr.length -1) ? true : false;
}
在PHP中,它们有访问数组的非整数索引。因此必须使用foreach循环遍历数组。当您需要做出某些决定时(在我的例子中,在构建查询时附加或/和参数),这就会出现问题。
我相信一定有某种标准的方法来做这件事。
PHP中如何解决这个问题?
因为你寻找EOF数组的意图只是为了粘合。请了解下面的策略。你不需要EOF:
$given_array = array('column1'=>'value1',
'column2'=>'value2',
'column3'=>'value3');
$glue = '';
foreach($given_array as $column_name=>$value){
$where .= " $glue $column_name = $value"; //appending the glue
$glue = 'AND';
}
echo $where;
o/p:
column1 = value1 AND column2 = value2 AND column3 = value3
More easy by end()函数是PHP中的一个内置函数,用于查找给定数组的最后一个元素。函数的作用是:将数组的内部指针更改为指向最后一个元素,并返回最后一个元素的值。
下面是一个非整型索引的例子:
<?php
$arr = array(
'first' =>
array('id' => 1, 'label' => 'one'),
'second' =>
array('id' => 2, 'label' => 'two'),
'last' =>
array('id' => 9, 'label' => 'nine')
);
$lastIndexArr = end($arr);
print_r($lastIndexArr);
检查这里的最后一个数组作为输出。
不要在最后一个值后面加逗号:
数组:
$data = ['lorem', 'ipsum', 'dolor', 'sit', 'amet'];
功能:
$result = "";
foreach($data as $value) {
$resut .= (next($data)) ? "$value, " : $value;
}
结果:
print $result;
Lorem, ipsum, dolor, sit, amet