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陣列的幾個操作,求並集,交集,差集,陣列與字串的相互轉換及陣列去重
在php中如果我想要對兩個陣列進行如並集、交集和差集操作,我們可直接使用php自帶的函式來操作如array_merge(),array_intersect(),array_diff(). 計算陣列的合併 array_merge與“+”的區別 array_merge() 函式
php中陣列的並集、交集和差集函式
計算陣列的並集 array_merge ( array array1[,arrayarray1[,array… ] ) 將一個或多個數組的單元合併起來,一個數組中的值附加在前一個數組的後面。返回作為結果的陣列。 計算陣列的交集 array_intersect ( a
兩個陣列的並集、交集、差集
const arr1 = [1,2,3];const arr2 = [3,4,5];// 並集const union = Array.from(new Set([...arr1,...arr2]));
List的 並集、交集、差集操作
bject list imp st2 for add str class lis package com.zheting.collection.list; import java.util.ArrayList; import java.util.Arrays; impo
第二十二章 Linux文件比較,文本文件的交集、差集與求差:comm命令
調整 得到 指定 顯示 兩個文件 not in 通過 需要 選項 第二十二章 Linux文件比較,文本文件的交集、差集與求差:comm命令 名詞解釋 comm 命令 可以用於兩個文件之間的比較,它有一些選項可以用來調整輸出,以便執行交集、求差、差集操作。 交集:打印兩個文件
ES6陣列實現並集、交集、差集
let set1 = new Set(['a','b','c','d','e','f']); let set2 = new Set(['d','e','f','g','h','i']); //並集 let union = [...new Set([...set1,...set2])]; /
集合類(並集、交集、差集操作)
昨日,朋友拿來一份有些問題的原始碼,是一個集合類和幾個集合操作函式(並集、交集、差集),幫忙改了一下,剛轉C++不到半個月,因為只是為了演算法競賽而學C++,所以只好好學了C++偏向演算法層的知識,類只是過了一遍,沒有自己嘗試寫過,剛好拿來練練手,於是大刀闊斧的
陣列取並集、交集、差集
package xuxin; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java
java字元陣列與字串相互轉換
1.字串轉化為字元陣列 public class Hello { public static void main(String args[]){ Scanner input = new Scanner(System.in); String str="abc";
Python list並集union, 交集intersection, 差集difference
轉載自翔雲並感謝Share python的集合set和其他語言類似,是一個無序不重複元素集, 可用於消除重複元素。 支援union(聯合), intersection(交), difference(差)和sysmmetric difference(對稱差集)等數學運算。 不支援 inde
ES6 運算元組的並集/交集/差集
使用ES6 運算元組 let a = new Set([1, 2, 3]); let b = new Set([3, 5, 2]); // 並集 let unionSet = new Set(
STL集合的並集、交集、差集、對稱差集
STL一共提供了四種set相關的演算法,分別是並集(union),交集(intersection),差集(difference),和對稱差集(symmetric difference)。 STL的這四個演算法所接受的set必須是有序區間,元素可以重複出現。即他們只能接受se
MySQL 並集、交集、差集
建立兩個表 CREATE TABLE `object_a` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `oname` varchar(50) DE
陣列的幾個操作filter,map,includes,find,some,every,reduce
let arr=[1,2,3,4,5,55]; filter(篩選) let newArr=arr.filter(function (i) { return i>2&&i<5; }); 返回新陣列,不會改變原陣列。
利用sort和uniq求兩個文件的並集,交集和差集
sort uniq 利用sort和uniq求兩個文件的並集,交集和差集 並集:cat file1.txt file2.txt | sort | uniq > file.txt 交集:cat file1.txt file2.txt | sort | uniq -d >file.txt
兩個存物件的List,求並集
比較物件的某幾個欄位,相等則表示物件相等,求並集: 將物件的那幾個欄位拼成一個String存於map中作為key, 物件作為value,程式碼如下: /******物件定義********/ Class Obj{ int attr1; String attr2; St
JS陣列求並集,交集和差集
es7: filter結合includes // 並集 let union = a.concat(b.filter(v => !a.includes(v))) // [1,2,3,4,5] // 交集 let intersectio
Android Bitmap 常見的幾個操作:縮放,裁剪,旋轉,偏移
/** * 根據給定的寬和高進行拉伸 * * @param origin 原圖 * @param newWidth 新圖的寬 * @param newHeight 新圖的高 * @return new Bitmap */ p
編寫一個程序,求出200到300之間的數,且滿足條件:它們三個數字之積為42,三個數字之和為12
clas system print gpo 變量 輸出 滿足 定義 post //定義變量ge、shi、bai,用於存放個位、十位、百位上的數字 int number=0; //使用for循環 for(nu
A. httpd常見的幾個操作
windows服務 文件 文件的 停止 win tor 運行 install -h 可以在cmd 窗口中輸入 httpd -help 查看httpd 的詳細用法常用的有以下幾個:①httpd -k install將Apache安裝為Windows NT服務,被安裝的服務名