数组合并
//array_merge 数组使用字符串键名,相同的键名会被后面的覆盖
//array_merge 数组使用数字键名,键名相同不会覆盖,且键名会重新索引
$arr1 = ['7'=>'c','5'=>'b','2'=>'d'];
$arr2 = ['2'=>'c','4'=>'d'];
$arr = array_merge($arr1,$arr2);
结果: Array ( [0] => c [1] => b [2] => d [3] => c [4] => d )
$arr1 = array('name'=>'zhan');
$arr2 = array('name'=>'terry');
$result = array_merge($arr1, $arr2);
结果:Array( [name] => terry )
//使用 “+” 运算符合并数组,可以保留数组的键值,如果合并的数组中含有相同的键值,后面的不会覆盖前面的键值(前面的优先)。
$arr1 = ['7'=>'c','5'=>'b','2'=>'d'];
$arr2 = ['2'=>'c','4'=>'d'];
$arr = $arr1+$arr2;
结果:Array ( [7] => c [5] => b [2] => d [4] => d )
字符串
//实体转html标签
$str = "<p>safd </p>";
$str = htmlspecialchars_decode($str);
echo $str.'<br>';
//html标签转实体
$str = "<p>safd </p>";
$str= htmlspecialchars($str);
echo $str.'<br>';
//字符串长度
$str = "中国abc";
echo strlen($str); //9
echo "<br>";
echo mb_strlen($str);//5
隐藏手机号中间四位
$tel = '15139005760';
//1.字符串截取法
$new_tel1 = substr($tel, 0, 3).'****'.substr($tel, 7);
var_dump($new_tel1);
//2.替换字符串的子串
$new_tel2 = substr_replace($tel, '****', 3, 4);
var_dump($new_tel2);
//3.用正则
$new_tel3 = preg_replace('/(\d{3})\d{4}(\d{4})/', '$1****$2', $tel);
var_dump($new_tel3);
获取时间戳
//获取上周的开始时间UNIX时间戳
$t=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
echo date("Y-m-d H:i:s",$t);
//获取上周结束时间UNIX时间戳
$t=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
echo date("Y-m-d H:i:s",$t);
//获取昨天开始时间
$t=mktime(0,0,0,date('m'),date('d'),date('Y'));
echo "今天:".date("Y-m-d")."<br>";
echo "昨天:".date("Y-m-d",strtotime("-1 day")), "<br>";
echo "明天:".date("Y-m-d",strtotime("+1 day")). "<br>";
echo "一周后:".date("Y-m-d",strtotime("+1 week")). "<br>";
echo "一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")). "<br>";
echo "下个星期四:".date("Y-m-d",strtotime("next Thursday")). "<br>";
echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."<br>";
echo "一个月前:".date("Y-m-d",strtotime("last month"))."<br>";
echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."<br>";
echo "十年后:".date("Y-m-d",strtotime("+10 year"))."<br>";
合并一个二维数组相同项,数量则相加
//.将usre_id看成唯一 合并一个二维数组相同项,数量则相加
$arr = array(
array(
'user_id' => 100,
'goods_id' => 10,
'number' => 1,
),
array(
'user_id' => 100,
'goods_id' => 10,
'number' => 2,
),
array(
'user_id' => 100,
'goods_id' => 10,
'number' => 2,
),
array(
'user_id' => 100,
'goods_id' => 10,
'number' => 2,
),
);
$item=array();
foreach($arr as $k=>$v){
if(!isset($item[$v['user_id']])){
$item[$v['user_id']]=$v;
}else{
$item[$v['user_id']]['number']+=$v['number'];
}
}
print_r($item);