[請益] 二維陣列的內容如何比較?

看板PHP作者 (Harmonic Inspirations)時間14年前 (2011/02/24 18:06), 編輯推噓3(3018)
留言21則, 2人參與, 最新討論串1/1
有個二維陣列Array[a][b],如: 1 2 1 d1 d2 2 d1 d3 3 d4 d1 假設 1. 第一列要跟第二列比較,找到相同的值d1 2. d1再跟第三列比較 在手冊中查到可以用array_intersect比較兩個一維陣列 但現在這個二維陣列,我應該如何寫? array_intersect(Array[1][?], Array[2][?]); 上一行的[?]即是不清楚該參數如何表達 目前確定是不能這樣寫: array_intersect(Array[1], Array[2]); 請問是否知道有適合二維陣列的寫法? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.13.187

02/24 18:19, , 1F
call_user_func_array('array_intersect', $Array);
02/24 18:19, 1F

02/24 18:20, , 3F
hp
02/24 18:20, 3F

02/24 22:06, , 4F
我想問的是二維陣列中取特定兩列的比較
02/24 22:06, 4F

02/24 22:16, , 5F
不了解j大的建議,因為無法直接指定二維陣列中的某二列
02/24 22:16, 5F

02/24 23:17, , 6F
array_intersect($arr1, $arr2, $arr3, ... )
02/24 23:17, 6F

02/24 23:17, , 7F
call_user_func_array 則是把 $array 當參數丟給 function
02/24 23:17, 7F

02/24 23:49, , 8F
我了解array_intersect可以比較陣列
02/24 23:49, 8F

02/24 23:50, , 9F
但如何指定二維陣列的某二列? 如何寫該參數?
02/24 23:50, 9F

02/24 23:52, , 10F
可能j大建立的二維陣列是$array={$arr1, $arr2,..}的方式
02/24 23:52, 10F

02/24 23:53, , 11F
所以可以用array_intersect($arr1, $arr2,...)的方式
02/24 23:53, 11F

02/24 23:54, , 12F
但我建立的二維陣列是$array[x][y]
02/24 23:54, 12F

02/24 23:55, , 13F
無法用array_intersect($array[x1][?],$array[x2][?],..)
02/24 23:55, 13F

02/25 10:38, , 14F
你用var_dump把你的$array dump出來看你就知道結構了
02/25 10:38, 14F

02/25 10:38, , 15F
去寫code驗證
02/25 10:38, 15F

02/25 10:39, , 16F
答案就是array_intersect($arr[1], $arr[2]); 然後再
02/25 10:39, 16F

02/25 10:40, , 17F
array_intersect($ret, $arr[3]); $ret 是前一行的 return
02/25 10:40, 17F

02/25 10:41, , 18F
而 array_intersect 其實可以一次完成 因為是and的概念
02/25 10:41, 18F

02/25 10:41, , 19F
array_intersect($arr[1], $arr[2], $arr[3]); 答案一樣
02/25 10:41, 19F

02/25 10:42, , 20F
如果$arr裡有不確定數量的rows, 就用call_user_func_array()
02/25 10:42, 20F

02/25 10:42, , 21F
一次餵給array_intersect
02/25 10:42, 21F
文章代碼(AID): #1DPYsCzO (PHP)
文章代碼(AID): #1DPYsCzO (PHP)