導航:首頁 > 編程語言 > php二維數組取交集

php二維數組取交集

發布時間:2022-12-09 19:58:40

php二維數組中取出其中的四個元素組

  1. 如果單純的獲取某四個連續的數組元素的話,可以直接使用數組操作函數array_slice(array array, int offset [,int length]),這個函數的意思是:返回數組一部分,從鍵offset開始,到offse+length位置結束。

  2. 如果是選取特定的某四個元素組的話,則只需遍歷一遍該數組,然後按需索取即可。有需要的話歡迎追問哦,望採納。

② php大數組怎麼求交集

在PHP中求數組的交集,我們可以與PHP給我們提供的現成函數:array_intersect(),其用法格式為:

array array_intersect(array array1,array array2[,arrayN…])

根據上述的語法格式,我們來寫一個例子:

1 <?php
2 $fruit1 = array("Apple","Banana","Orange");
3 $fruit2 = array("Pear","Apple","Grape");
4 $fruit3 = array("Watermelon","Orange","Apple");
5 $intersection = array_intersect($fruit1, $fruit2, $fruit3);
6 print_r($intersection);
7 // 輸出結果:
8 // Array ( [0] => Apple )
9 ?>

本例子將返回在$fruit1數組中出現且在$fruit2和$fruit3中也出現的所有水果的名子。

使用array_intersect()函數時要注意:只有在兩個元素相等且具有相同的數據類型時,array_intersect()函數才會認
為它們是相同的,否則不能進行交集計算。array_intersect()函數返回一個保留了鍵的數組,只由第一個數組中出現的且在其它數組中都出現的
值組成。

若要求關聯數組的交集,請使用array_intersect_assoc()函數,給你個簡單的例子:

1 <?php
2 $fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");
3 $fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");
4 $fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");
5 $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
6 print_r($intersection);
7 // 輸出:
8 // Array ( [red] => Apple )
9 ?>

array_intersect_assoc()函數語法格式如下:

array array_intersect_assoc(array array1,array array2[,arrayN…])

array_intersect_assoc()與array_intersect()基本相同,只不過他在比較中還考慮了數組的鍵。因此,只有在第一個數組中出現,且在所有其他輸入數組中也出現的鍵/值對才返回到結果數組中。

③ PHP二維數組里怎麼保留和另一個二維數組值相同的數組

在PHP中求數組的交集,我們可以與PHP給我們提供的現成函數:array_intersect(),其用法:
$a = array(
'0'=>array('id'=>'1'),
'1'=>array('id'=>'2'),
'2'=>array('id'=>'3'),
);
$b = array(
'0'=>array('uid'=>'1'),
'1'=>array('uid'=>'2'),
'2'=>array('uid'=>'4'),
);

for ($i=0; $i < count($a); $i++) {
$aa[$i] = $a[$i]['id'];
}
for ($m=0; $m < count($b); $m++) {
$bb[$m] = $b[$m]['uid'];
}
$result = array_intersect($aa, $bb);
print_r($result);

④ PHP高手請進。把一個三維數組里的所有二維數組取出來比較,取交集...

//foreach三維,一步步算下去就行

$arr = array(
array('a'=>'1','b'=>'2','c'=>'5','d'=>'56'),
array('a'=>'1','c'=>'5','d'=>'56'),
array('a'=>'1','c'=>'5','e'=>'44'),
array('a'=>'1','c'=>'5','d'=>'56','f'=>'d')
);

if (count($arr)>0)
{
foreach($arr as $key=>$val)
{
if ($key==0)//第一個先取出來
{
$tmp_arr = $val;
}
else
{
$tmp_arr = array_intersect_assoc($tmp_arr,$val);
}
}

}

print_r($tmp_arr);

⑤ php 多個多維數組求交集

array_intersect
(PHP 4 >= 4.0.1, PHP 5)

array_intersect -- 計算數組的交集說明
array array_intersect ( array array1, array array2 [, array ...])

array_intersect() 返回一個數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值。注意鍵名保留不變。

例子 1. array_intersect() 例子

<?php
$array1 = array ("a" => "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_intersect ($array1, $array2);
?>
這使得 $result 成為:

Array
(
[a] => green
[0] => red
)

注: 兩個單元僅在 (string) $elem1 === (string) $elem2 時被認為是相同的。也就是說,當字元串的表達是一樣的時候。

array_diff
(PHP 4 >= 4.0.1, PHP 5)

array_diff -- 計算數組的差集說明
array array_diff ( array array1, array array2 [, array ...])

array_diff() 返回一個數組,該數組包括了所有在 array1 中但是不在任何其它參數數組中的值。注意鍵名保留不變。

例子 1. array_diff() 例子

<?php
$array1 = array ("a" => "green", "red", "blue", "red");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_diff ($array1, $array2);
?>
這使得 $result 成為 array (1 => "blue");。在 $array1 中多次出現的值同樣對待。

注: 兩個單元僅在 (string) $elem1 === (string) $elem2 時被認為是相同的。也就是說,當字元串的表達是一樣的時候。
注: 注意此函數僅檢查多維數組中的一維。當然你可以用 array_diff($array1[0], $array2[0]); 檢查更深的維度。

array_diff_assoc -- 帶索引檢查計算數組的差集

說明
array array_diff_assoc ( array array1, array array2 [, array ...])

array_diff_assoc() 返回一個 array,返回一個數組,該數組包括了所有在 array1 中但是不在任何其它參數數組中的值。注意和 array_diff() 不同的是鍵名也用於比較。

例子 1. array_diff_assoc() 例子

<?php
$array1 = array ("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array ("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);

?>
上面的例子中可以看到鍵值對 "a" => "green" 在兩個數組中都有,因此不在本函數的輸出中。與此不同,鍵值對 0 => "red" 出現在輸出中是因為第二個參數中的 "red" 的鍵名是 1。

鍵值對 key => value 中的兩個值僅在 (string) $elem1 === (string) $elem2 時被認為相等。也就是說使用了嚴格檢查,字元串的表達必須相同。

⑥ php兩個二維數組匹配問題

用array_intersect_assoc()函數試試,這個函數的作用是返回兩個數組中鍵和值都相同的元素的交集。

⑦ php中二維數組如何使用

PHP還是比較常用的,於是我研究了一下PHP二維數組,在這里拿出來和大家分享一下,希望對大家有用使用PHP從數組中取出一段值可使用PHP內置函數array_slice(),但這個函數只支持一維數組,具體使用可查看PHP手冊,array_slice函數並不支持二維數組,。首先了解一下array_slice函數:
arrayarray_slice(arrayarray,intoffset[,intlength[,boolpreserve_keys]])array_slice()
返回根據offset和length參數所指定的array數組中的一段序列。
實例:從一維數組中取出一段值
<?php$arrayarray=array('b','i','u','u','u');$result=array_slice($array,0,4);print_r($result);?>
實例從數組$array中取出四個值,起點數組下標0開始,結果如下:從一維數組取出一段值非常簡單,直接使有內置函數array_slice。PHP二維數組的取值同樣需要使用array_slice函數,實例二維數組數據如下:
$arrayarray=array();
$array[1]=array('1'=>'b1','2'=>'i1','3'=>'u1','4'=>'u1','5'=>'u1');
$array[2]=array('1'=>'b2','2'=>'i2','3'=>'u2','4'=>'u2','5'=>'u2');
$array[3]=array('1'=>'b3','2'=>'i3','3'=>'u3','4'=>'u3','5'=>'u3');
$array[4]=array('1'=>'b4','2'=>'i4','3'=>'u4','4'=>'u4','5'=>'u4');
$array[5]=array('1'=>'b5','2'=>'i5','3'=>'u5','4'=>'u5','5'=>'u5');
$array[6]=array('1'=>'b6','2'=>'i6','3'=>'u6','4'=>'u6','5'=>'u6');
$array[7]=array('1'=>'b7','2'=>'i7','3'=>'u7','4'=>'u7','5'=>'u7');
如上二維數組,如果需要取出其中某段,需要知道取段開始與結束在數組中的位置,考慮到應用的特殊性,只從第一個數組開始,在這個二維數組中取出需要的數組個數。方法如下:
functionarray_silice_func(array$array,$limit){$k=$count=0;$temp=array();foreach($arrayas$key=>$value){$countcount=count($value);if($count+$k>=$limit){$t=array_slice($value,0,$limit-$k);$temp[$key]=$t;break;}$temp[$key]=$value;$k+=$count;}return$temp;}

APC方法實現PHP上傳多個文件原理剖析
新手必看PHP上傳文件進度全面揭秘
經驗之談PHP數組函數總結
深入學習PHP數組函數使用方法
使用如下:print_r(array_silice_func($array,5))取出二維數組的5個值,結果如下:Array([1]=>Array([0]=>b1[1]=>i1[2]=>u1[3]=>u1[4]=>u1))依此類推,取出所需要的數組個數。由於PHP二維數組的使用局限性,這里沒有實現從二維數組某個下標開始,取出多少個數組個數的需求,不過這也是值得探討的地方。以上就關於如何使用PHP從二維數組中取出一段指定值,希望對大家有幫助。

⑧ php 一個二維數組求二維數組內的並集

PHP 中的 array_merge_recursive() 函數可以實現

將一個或多個數組的元素的合並起來,一個數組中的值附加在前一個數組的後面。並返回作為結果的數組。

當有重復的鍵名時,值不會被覆蓋,而是將多個相同鍵名的值遞歸組成一個數組。

array_merge_recursive(array1,array2,array3...)

參數說明
array1 必需。輸入的第一個數組。
array2 必需。輸入的第二個數組。
array3 可選。可指定的多個輸入數組。

例如:
<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge_recursive($a1,$a2));
?>

輸出:
Array (
[a] => Horse
[b] => Array ( [0] => Dog [1] => Cat )
[c] => Cow
)

註:array_merge() 函數也可以實現,與 array_merge_recursive()函數不同是,如果鍵名有重復,該鍵的鍵值為最後一個鍵名對應的值(後面的覆蓋前面的)。如果數組是數字索引的,則鍵名會以連續方式重新索引。

⑨ 如何快速取兩個二維數組中的交集

一維數組取交集是非常的簡單,直接用一個函數即可。array_intersect($arr, $ar),那麼二維數組又是如何的取出它們的交集呢,可能有人同樣想用這個函數,但結果卻不是我們想要的。下面有這樣的一個數組:

$arr=array(
array('a'=>'1',2),
array(3,4)
);
$ar=array(
array('a'=>1,2),
array(3,4)
);

如果我單獨用 array_intersect($arr, $ar)。返回的結果如下:

array(
array('a'=>'1',2),
array(3,4)
);

python二維數組怎麼求交集

本文實例講述了python獲得兩個數組交集、並集、差集的房部分。分享給大家供大家參考。具體如下:
1. 獲取兩個list 的交集
#方法一:
a=[2,3,4,5]
b=[2,5,8]
tmp = [val for val in a if val in b]
print tmp
#[2, 5]

#方法二
print list(set(a).intersection(set(b)))

2. 獲取兩個list 的並集

print list(set(a).union(set(b)))

3. 獲取兩個 list 的差集

print list(set(b).difference(set(a))) # b中有而a中沒有的

通過以上方法,就能處理python list 的交集,並集,差集了。

閱讀全文

與php二維數組取交集相關的資料

熱點內容
如何批量快速壓縮視頻 瀏覽:432
我的世界如何加入ice伺服器 瀏覽:873
兄弟cnc編程說明書 瀏覽:204
php閃電入門教程學習 瀏覽:152
金岳霖邏輯pdf 瀏覽:938
linuxtomcat線程 瀏覽:77
pboc長度加數據加密 瀏覽:187
英雄聯盟國際服手游怎麼下安卓 瀏覽:297
程序員的思路 瀏覽:234
只能用命令獲得的四種方塊 瀏覽:358
怎麼用命令方塊防止開創造 瀏覽:807
掃描版的pdf 瀏覽:790
編程貓怎樣做3d游戲 瀏覽:207
怎麼查找雲伺服器上的ftp 瀏覽:156
我的世界伺服器如何注冊賬號 瀏覽:934
統計英文字元python 瀏覽:423
linux信息安全 瀏覽:908
壓縮機接線柱爆 瀏覽:999
程序員自主創業 瀏覽:584
匯編程序員待遇 瀏覽:359