導航:首頁 > 編程語言 > php數組交叉

php數組交叉

發布時間:2023-01-08 04:03:38

php 數組分割成多個數組

1.系統函數:
array_chunk() 把一個數組分割為新的數組塊
array_slice() 返回數組中被選定的部分等,更多的參考w3school
http://www.w3school.com.cn/php/php_ref_array.asp,程序員要學會用手冊
2.自定義函數:
當系統函數不能滿足實際需求時,根據實際的需求,自己重新定義函數
function(){}

3、 計算參數的數組:

參數1是傳入數組,參數2是每個分數組元素數量//調用方法返回的是二維數組,可以用數組下標取出你需要的一維數組。

㈡ php 兩個一維數組交叉遍歷變二維

$a=array(1,2);
$b=array(20001,20002,20003);
$c=array();
for($i=0;$i<count($b);$i++){
for($j=0;$j<count($a);$j++){
array_push($c,array($a[$j],$b[$i]));
}
}
echo'<pre>';
print_r($c);
echo'</pre>';

效果圖

㈢ PHP數組的幾個操作,求並集,交集,差集,數組

PHP數組的幾個操作,求並集,交集,差集,數組與字元串的相互轉換及數組去重
在php中如果我想要對兩個數組進行如並集、交集和差集操作,我們可直接使用php自帶的函數來操作如array_merge(),array_intersect(),array_diff().
計算數組的合並 array_merge與「+」的區別
array_merge() 函數把兩個或多個數組合並為一個數組。
如果鍵名有重復,該鍵的鍵值為最後一個鍵名對應的值(後面的覆蓋前面的),如果數組是數字索引的,則鍵名會以連續方式重新索引。
注釋:如果僅僅向 array_merge() 函數輸入了一個數組,且鍵名是整數,則該函數將返回帶有整數鍵名的新數組,其鍵名以 0 開始進行重新索引.代碼如下:
$a = array(1 => 'a', 'b', 'c');
$b = array(1 => 'aa', 2, 'c');
$union = array_merge($a, $b);
$plus = $a + $b;
print_r($union);
print_r($plus);
//結果依次為:
Array
{
[0]=> a
[1]=> b
[2]=> c
[3]=> aa
[4]=> 2
[5]=> c
}
Array
(
[1] => a
[2] => b
[3] => c
)
要合並的兩個數組中有相同的字元串鍵的時候,使用array_merge()會覆蓋掉原來的值,而使用「+」合並數組則會和用「+」號合並數組相同數字鍵一樣把最先出現的值作為最終結果返回,如下例:
$a2 = array('str' => 'a', 'b', 'c');
$b2 = array('str' => 'aa', 2, 'c');
$union2 = array_merge($a2, $b2);
$plus2 = $a2 + $b2;
print_r($union2);
print_r($plus2);
//結果依次為:
Array
(
[str] => aa
[0] => b
[1] => c
[2] => 2
[3] => c
)
Array
(
[str] => a
[0] => b
[1] => c
)
注:如果想用array_merge合並兩個數組,返回結果可能還會有相同的元素,這時候可以用array_unique()把相同的元素去掉
計算數組的交集
array_intersect() 函數返回兩個或多個數組的交集數組,結果數組包含了所有在被比較數組中,也同時出現在所有其他參數數組中的值,鍵名保留不變,注釋:僅有值用於比較,代碼如下:
$a = array('jpg','png','gif','bmp');
$b = array('JPG','txt','docx','bmp');
$intersection = array_intersect($a, $b);
還可以通過函數,獲取自己想要的(比如元素不區分大小寫),代碼如下:
$intersection2 = array_intersect(array_map('strtolower',$a), array_map('strtolower',$b));
print_r($intersection);
print_r($intersection2);
//結果依次為:
Array
(
[3] => bmp
)
Array (
[0] => jpg
[3] => bmp
)
計算數組的差集,代碼如下:
$old = array('jpg','png','gif','bmp');
$new = array('JPG','txt','docx','bmp');
$difference = array_diff($old, $new);
注:返回結果的元素包含$old的元素,不包括$new的元素
print_r($difference);
結果為:
Array
(
[0] => jpg
[1] => png
[2] => gif
)
也可以用函數先進行處理,再計算差集
array_diff() 函數返回兩個數組的差集數組。該數組包括了所有在被比較的數組中,但是不在任何其他參數數組中的鍵值,在返回的數組中,鍵名保持不變。
語法:array_diff(array1,array2,array3...)
代碼如下:
$difference = array_diff(array_map('strtolower',$old),
array_map('strtolower',$new));
數組轉換為字元串:
<?php
$arr = array('Hello','World!','I','love','Shanghai!');
echo implode(" ",$arr);
?>
字元串轉換為數組:
<?php
$str="1432532 ,4444";
$arr = explode(",",$str);
echo count($arr)."</br>";

print_r($arr);
?>
數組元素值去重
<?php
$a=array("a"=>"red","b"=>"green","c"=>"red");
print_r(
array_unique($a)
);
?>
針對有空格的字元串轉換成無空格的字元串
<?php
$str="1432532 ,67878";
$arr = explode(",",$str);
//echo count($arr)."</br>";

$str_u='';

for($i=0;$i<count($arr);$i++)
{

$str_u .=trim($arr[$i]).',';

}
echo $str_u;
?>

㈣ php 數組問題

這個沒有現成的函數,可以用循環來遍歷。

$count=0;
foreach($aas$value){
if($value==1)
$count++;
}
echo$count;//就是1的個數。

㈤ php如何遍歷交叉的多維數組並給其id和pid(父鍵id)

遍歷數組常用的函數為foreach(),具體要怎麼遍歷這個交叉數組,你要結合你自己的實際需要去遍歷了

㈥ PHP 數組問題

<?php
$arr = array('1','2','3','4','5','6','6','6','6','7','7','9','9','9','j','j','k','k','9','9','6','6');
$count=count($arr);
for ($i=0; $i <$count ; $i++) {
if ($arr[$i]==$arr[$i+1]&&$arr[$i]==$arr[$i+2]&&$arr[$i]==$arr[$i+3]) {
echo $arr[$i].$arr[$i+1].$arr[$i+2].$arr[$i+3]."<br>";
}
elseif ($arr[$i]==$arr[$i+1]&&$arr[$i]==$arr[$i+2]) {
if ($arr[$i]!=$arr[$i+3]&&$arr[$i]!=$arr[$i-1]) {
echo $arr[$i].$arr[$i+1].$arr[$i+2]."<br>";
}

}

}
?>
寫了4個9和3個6,比較笨的方法,你看看

㈦ php下將多個數組合並成一個數組的方法與實例代碼

1.合並數組
array_merge()函數將數組合並到一起,返回一個聯合的數組。所得到的數組以第一個輸入數組參數開始,按後面數組參數出現的順序依次迫加。其形式為:
復制代碼
代碼如下:
array
array_merge
(array
array1
array2…,arrayN)
將一個或多個數組的單元合並起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。
如果輸入的數組中有相同的字元串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。
如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。
實例如下:
復制代碼
代碼如下:
$face
=
array("J","Q","K","A");
$numbered
=
array("2","3","4","5","6","7","8","9");
$cards
=
array_merge($face,
$numbered);
shuffle($cards);
print_r($cards);
這將返回如下所示的結果,運行代碼:
復制代碼
代碼如下:
Array
(
[0]
=>
A
[1]
=>
4
[2]
=>
9
[3]
=>
3
[4]
=>
K
[5]
=>
7
[6]
=>
5
[7]
=>
Q
[8]
=>
6
[9]
=>
8
[10]
=>
2
[11]
=>
J
)
2.遞歸追加數組
array_merge_recursive()函數與array_merge()相同,可以將兩個或多個數組合並在一起,形成一個聯合的數組.兩者之間的區別在於,當某個輸入數組中的某個鍵己經存在於結果數組中時該函數會採取不同的處理方式.array_merge()會覆蓋前面存在的鍵/值對,替換為當前輸入數組中的鍵/值對,而array_merge_recursive()將把兩個值合並在一起,形成一個新的數組,並以原有的鍵作為數組名。還有一個數組合並的形式,就是遞歸追加數組。其形式為:
view
sourceprint?array
array_merge_recursive(
array
key,array
values
)
示例如下:
復制代碼
代碼如下:
$class1
=
array("John"
=>
100,
"James"
=>
85);
$class2
=
array("Micky"
=>
78,
"John"
=>
45);
$classScores
=
array_merge_recursive($class1,
$class2);
print_r($classScores);
這將返回如下結果:
view
sourceprint?Array
(
[John]
=>
Array
(
[0]
=>
100
[1]
=>
45
)
[James]
=>
85
[Micky]
=>
78
)
3.連接兩個數組
array_combine()函數會得到一個新數組,它由一組提交的鍵和對應的值組成。其形式為:
view
sourceprint?array
array_merge(array
array1,array
array2[…,array
arrayN])
注意,兩個輸入數組必須大小相同,不能為空。示例如下:
復制代碼
代碼如下:
$abbreviations
=
array("AL","AK","AZ","AR");
$states
=
array("Alabama","Alaska","Arizona","Arkansas");
$stateMap
=
array_combine($abbreviations,$states);
print_r($stateMap);
這會返回:
復制代碼
代碼如下:
Array
(
[AL]
=>
Alabama
[AK]
=>
Alaska
[AZ]
=>
Arizona
[AR]
=>
Arkansas
)

閱讀全文

與php數組交叉相關的資料

熱點內容
福州看病預約用什麼小程序app 瀏覽:238
php保留兩位小數不四捨五入 瀏覽:292
黑馬程序員路徑大全 瀏覽:1000
saas平台PHP 瀏覽:333
雲伺服器科學計算配置怎麼選 瀏覽:649
jar解壓命令 瀏覽:609
php正則問號 瀏覽:299
無線已加密不可上網是怎麼了 瀏覽:464
什麼app可以免費做手機 瀏覽:375
異性下載什麼app 瀏覽:680
51單片機程序單步視頻 瀏覽:241
家庭寬頻如何連接伺服器 瀏覽:119
汽車高壓泵解壓 瀏覽:772
上門正骨用什麼app 瀏覽:761
安卓為什麼免費使用 瀏覽:398
加密貨幣都有哪些平台 瀏覽:629
python和matlab難度 瀏覽:391
python爬蟲很難學么 瀏覽:575
小米解壓積木可以組成什麼呢 瀏覽:818
為什麼滴滴出行app還能用 瀏覽:568