/* 简单理解函数传参引用 */
function fun(&$val){
$val = "'".$val."'";
/* 如果用引用的形式返回值就用不上了,可以直接输出传过来的变量 */
return $val;
}
$val = 'qwe';
fun($val);
//调用函数后比如:
echo $val;//输出 'qwe'
/* 主要场景用于数组值的引用处理 */
$arr = array('qqq','www','eee','rrr','ttt');
array_walk($arr, 'fun');
echo '
';
print_r($arr);
/* array_walk 该函数的使用类似如下循环↓,该函数使用起来方便,循环速度相对比较快 */
$arrarr = array('aaa','sss','ddd','fff','ggg');
foreach ($arrarr as $key=>$value){
fun($value);
$arrarr[$key] = $value;
/* 如果有返回值,就和正常调用函数一样 */
//$arrarr[$key] = fun($value);
/* 又或者这样 */
//$arrarr[$key] = "'".$value."'";
}
echo '
';
print_r($arrarr);
/* 数组转换成字符串(逗号分隔),应用场景:SQL写操作应用插入表字段值 */
$arrs = array('asd'=>123,'fgh'=>456,'jkl'=>789,'zxc'=>147,'vbn'=>258);
$keys_arr = array_keys($arrs);//获取键名当字段用
$values_arr = array_values($arrs);//获取键值当数据值用
echo '
';
//print_r($keys_arr);
//echo '
';
//print_r($values_arr);
$str1 = "'".implode("','",$values_arr)."'";
print_r($str1);
echo '
';
$str2 = "'".str_replace( ",","','", implode(',',$values_arr))."'"; //使用需要的符号替换
print_r($str2);
echo '
';
//array_map 函数式实现,使用函数拼接,使用函数可以加过滤判断
$str3 = implode(',', array_map(function ($v) {
//return "'" . $v. "'";
return "'" . trim($v) . "'";
}, $values_arr)
);
print_r($str3);