array_merge 用來進行2個或多個陣列合併
輸出結果:
輸出出結果,陣列的索引重新排序了。某些情況陣列的索引與值是有關聯的,這麼做丟失索引及值的關聯,目前 array_merge 並沒有是否重建索引的選項,所以要透過另外一種方式來合併陣列,並保持索引鍵與值的關聯。
透過下面的代碼實現:
輸出結果:
就這樣,用運算符「+」來進行陣列的累加,非常簡單,且保持 鍵與值的關聯。
請注意型態必須都為 array
但也不必太擔心,型態錯誤會報錯
[……]
array_merge 用來進行2個或多個陣列合併
輸出結果:
輸出出結果,陣列的索引重新排序了。某些情況陣列的索引與值是有關聯的,這麼做丟失索引及值的關聯,目前 array_merge 並沒有是否重建索引的選項,所以要透過另外一種方式來合併陣列,並保持索引鍵與值的關聯。
透過下面的代碼實現:
輸出結果:
就這樣,用運算符「+」來進行陣列的累加,非常簡單,且保持 鍵與值的關聯。
請注意型態必須都為 array
但也不必太擔心,型態錯誤會報錯
[……]
本篇提供兩個方法互轉,簡潔又好用,沒有限制數字大小
繼下面這篇文章後,我發現更簡短的方法,提供給大家參考
ex:
Excel 欄位英文字母轉換回 數字
ex:
[……]
數字轉換 Excel 欄位英文字母,例如 1 = A , 2 = B , 27 = AA
Excel 欄位英文字母轉換回 數字 , 例如 A = 1 , B = 2 , AA = 27
本篇提供兩個方法互轉,簡潔又好用,沒有限制數字大小
ex:
Excel 欄位英文字母轉換回 數字
ex:
https://stackoverflow.com/a/25214690/6784662
[……]
在開發網頁後端的時候,很常見像WordPress 這樣的分類資料,當按下儲存,表單送出後,PHP會接到的是一個POST的陣列,這就是分類id的陣列,而後端程式的處理上,新增文章的時候很好判斷,只要將送來的id都新增一筆資料就好了,但遇到文章更新的時候就相對麻煩了,因為已經有原本選擇的標籤資料了,需要去比對原本的標籤資料與表單新送過來的分類id,需要判斷哪幾個id是要新增資料,那幾個id 是要刪除資料,透過本篇介紹的array_diff() (陣列的差集),PHP原生的處裡函式就可以輕鬆篩選出來
[……]
youtube 現在分享網址有好多種,
可能是這樣:
可能是這樣:
https://www.youtube.com/watch?v=p_T3oNKjAT8
不確定User會填入哪一種分享網址的情況下,下面這方法可以解析出這些類型的 youtube id
<?php /** * Get Youtube video ID from URL * * @param string $url * @return mixed Youtube video ID or FALSE if not found */ function getYoutubeIdFromUrl($url) { $parts = parse_url($url); if(isset($parts['query'])){ parse_str($parts['query'], $qs); if(isset($qs['v'])){ return $qs['v']; }else if(isset($qs['vi'])){ return $qs['vi']; } } if(isset($parts['path'])){ $path = explode('/', trim($parts['path'], '/')); return $path[count($path)-1]; } return false; } // Test $urls = array( 'http://youtube.com/v/dQw4w9WgXcQ?feature=youtube_gdata_player', 'http://youtube.com/vi/dQw4w9WgXcQ?feature=youtube_gdata_player', 'http://youtube.com/?v=dQw4w9WgXcQ&feature=youtube_gdata_player', 'http://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=youtube_gdata_player', 'http://youtube.com/?vi=dQw4w9WgXcQ&feature=youtube_gdata_player', 'http://youtube.com/watch?v=dQw4w9WgXcQ&feature=youtube_gdata_player', 'http://youtube.com/watch?vi=dQw4w9WgXcQ&feature=youtube_gdata_player', 'http://youtu.be/dQw4w9WgXcQ?feature=youtube_gdata_player' ); foreach($urls as $url){ echo $url . ' : ' . getYoutubeIdFromUrl($url) . "\n"; }
[……]
使用 Google reCaptcha 驗證碼進行後端驗證,拋出 invalid-json 錯誤,分享解決這問題的方法:
開啟檢查 PHP.ini 設定,搜尋「allow_url_fopen」,若值不是 On 請改成 On 開啟它,如下:
allow_url_fopen = On
接著搜尋「extension=php_openssl.dll」,確認是否開啟,前方有分號「;」代表沒開啟
;extension=php_openssl.dll
將前方的分號「;」移除,如下:
extension=php_openssl.dll
重新啟動 SERVER
[……]
/** * https://vector.cool */ Namespace VECTOR\COOL; function test() { echo "Hello world!\n"; } VECTOR\COOL\test();
/** * https://vector.cool */ namespace VECTOR\COOL; class HELLO{ static public function test() { echo "Hello world!\n"; } } VECTOR\COOL\HELLO::test();
<?php /** * https://vector.cool */ Namespace VECTOR\COOL; function test() { echo "Hello world!\n"; } add_action('init','VECTOR\COOL\test');
http://php.net/manual/en/language.namespaces.nsconstants.php[……]
使用 __NAMESPACE__ 取得當前文件的 Namespace
/** * https://vector.cool */ Namespace VECTOR\COOL; function test() { echo "Hello world!\n"; } call_user_func(__NAMESPACE__ .'\test');
/** * https://vector.cool */ Namespace VECTOR\COOL; class Hello { static public function test() { echo "Hello world!\n"; } } call_user_func(__NAMESPACE__ .'\Hello::test'); // String call_user_func(array(__NAMESPACE__ .'\Hello', 'test')); // Array
/** * https://vector.cool */ Namespace V123\PLUGIN\CFU; add_action('init',__NAMESPACE__.'\create_initial_admin_menu');
http://php.net/manual/en/language.namespaces.nsconstants.php
https://stackoverflow.com/questions/14682356/relative-namespaces-and-call-user-func[……]