1. 程式人生 > >PHP 常用函式(陣列/字串/時間...)

PHP 常用函式(陣列/字串/時間...)

數組合並

//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&nbsp;</p>";
$str= htmlspecialchars($str);
echo $str.'<br>';

//字串長度
$str = "中國abc";
echo strlen($str); //9
echo "<br>";
echo mb_strlen($str);//5

獲取時間戳

//獲取上週的開始時間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);