php 二維陣列進行假的 group by 資料篩選

有些時候我們在資料庫存取後會拿到一些很髒的資料,要作資料的篩選整理。
這次我們要做的動作就是,兩個相同格式的二為陣列要去過濾出重複的某個 key 值不要讓他一直出現:
例如:



$arr1[] = array( 'order_id'=>'00001', 'name'=>"james", ); $arr1[] = array( 'order_id'=>'00002', 'name'=>"james 2", ); $arr1[] = array( 'order_id'=>'00003', 'name'=>"james 3", ); $arr2[] = array( 'order_id'=>'00002', 'name'=>"james 2", ); $arr2[] = array( 'order_id'=>'00003', 'name'=>"james 3", ); $arr2[] = array( 'order_id'=>'00004', 'name'=>"james 4", ); 我們分別拿到 arr1 和 arr2 的陣列資料,如果我們直接把他們兩個合併,那麼 00002 00003 就會被重複兩次。
這時候我們就可以簡單的呼叫一下這個 function 來作過濾
// 先合起來兩個陣列 $result = array_merge($arr1, $arr2); // 進行過濾 $result_2 = group_by($result,'order_id'); 這樣我們拿到的 result_2 就會過濾掉重複的 order_id 資料


這個 function 我會放在
https://github.com/gwolf0719/lib_function…

檔案上傳模組 超簡易版 三行搞定

網路上面寫了很多檔案上傳的模組,這幾天也找了很多書,大部分的書上面都是用陣列的方式運用讓一次可以上傳很多檔案。不過我很認真的寫了一個非常單純的上傳模組。可以讓大家更了解上傳的運作方式。

1.首先,還是要先製作一個上傳的表單
表單要加上 enctype="multipart/form-data" 這個屬性
這個輸入框的type要把它設成file至於ID就設成userfile吧







2.接下來就是接收的頁面,通常我會把接收的頁面同時也當作是程式運算的頁面,上傳檔案的動作再標頭的位置就可以處理掉。

//這一行要先寫上傳的檔案要先暫存在的資料夾
$uploaddir = 'C:/AppServ/www/test/img/';
//宣告暫存檔名
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
//更改上傳的檔名為 PID_B.jpg
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_POST["PID"] . '_B'.'.jpg');


解釋一下好了:
原理:
PHP中檔案丟到伺服器中只會被暫存,當網頁關閉就會被刪除。因此我們要趕在檔案被刪除之前把檔案搬走,搬到我們要的地方,這樣我們就可以留下我們要的檔案。
這就是上傳檔案的原理。但是要注意一件事就是要先確定暫存的目錄和移動的目錄都要是存在的,PHP並沒有向WINDOWS一樣還會自動生成一個資料夾,只會自動出現錯誤資訊。

語法:
$uploaddir = '這個地方是暫存的實體位址喔';
//接下來要利用
$_FILES語法來取得userfile傳回來的檔名寫到$uploadfile變數中
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
//利用move_uploaded_file搬移檔案到我們要的地方(這是語法喔不是變數)
move_uploaded_file(原來的檔案,目的地檔案);
這樣就大功告成啦!!



留言

這個網誌中的熱門文章

JavaScript 將 Array 和 Object 轉成 JSON

利用 google MAP API 取得座標之間的距離

讓 PHP 接收 post 的 json 資料