https://segmentfault.com/a/1190000014746905
## 簡述
數據處理是任何程序員都避免不了的,PHP有一套強大的數組處理函數,可以很好幫助處理常見的數據處理問題。自己的腦子記性不好,經常忘記函數怎樣用,所以記下來給自己以后好好翻查,也希望對你們有所幫助吧。
## Q&A
### PHP怎樣定義數組和賦值?
這個簡單,給簡單列一下,歡迎補充:
(1)數組定義
~~~
<?php
// 數組定義
$arr1 = array();
$arr2 = [];
?>
~~~
(2)數組賦值
~~~
<?php
// 利用 list 函數給數組賦值
list($arr[], $arr[], $arr[]) = [1, 2, 3];
?>
~~~
### array\_multisort() - 數組排序
函數功能:可以同時對多個數組進行排序,關聯鍵名保持不變,數字鍵名會被重新索引。
~~~
<?php
// 自定義數據
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
// 取得列的列表
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
// 先將數據根據 volume 降序排列,出現重復時再根據 edition 升序排列
// 把 $data 作為最后一個參數,以通用鍵排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
print_r($data);
?>
~~~
### array\_column() - 獲取數組指定一列
函數功能:根據指定的 key,獲取指定的那一列數據。
~~~
<?php
// 對目標數組獲取 key 的一列,并復制到結果數組
$resultArr = array_column($targetArr, 'key');
?>
~~~
### array\_diff() - 數組相減求差集合
函數功能:對兩個數組進行比較,求兩個數組的差集。
~~~
<?php
// 把兩個數組的差集保存到結果數組
$diffArr = array_diff($arr1, $arr2);
?>
~~~
### array\_flip() - 數組鍵和值互換位置
函數功能:將數組中的鍵和值進行位置調換,
~~~
<?php
// 把目標數組的鍵和值互換位置
array_flip($targetArr);
?>
~~~
### array\_intersect() - 兩個數組的交集
函數功能:比較兩個數據的交集,算出兩個數組的相同部分。
~~~
<?php
// 兩個數組的交集保存到結果數組
$resultArr = array_intersect($arr1, $arr2)
?>
~~~
### array\_key\_exists() - 判斷數組鍵名是否存在
函數功能:判斷數組中指定鍵名或索引是否存在,僅適用一維數組。
<?php
~~~
// 判斷數組是否有 key 這個鍵
if(!array_key_exists('key', $targetArr)) {
throw new \Exception('目標數組沒有key這個鍵!');
}
~~~
?>
### array\_merge() - 合并數組
函數功能:合并多個數據,不會合并相同鍵值的元素。
~~~
<?php
// 合并數組
$resultArr = array_merge($arr1, $arr2)
?>
~~~
### array\_pad() - 按照設定補全數組元素
函數功能:設定函數長度,多除少補地保證數組長度跟設定的一致,可以設置補充元素的值。
~~~
<?php
// 結果計劃是:$resultArr = [1,2,3,0,0]
$resultArr = array_pad([1,2,3], 5, 0);
?>
~~~
### array\_pop() - 數組最后一個元素出棧(刪)
函數功能:把數組最后一個函數去掉。
~~~
<?php
// 刪掉最后一個元素
$resultArr = array_pop([1,2,3]);// $resultArr = [3]; [1,2]
?>
~~~
### array\_product() - 數組內元素相乘
函數功能:計算數組內的所有元素相乘的結果,空數組返回1。
~~~
<?php
// 數組內元素相乘
$result = array_product([1,2,3]) // $result = 6
?>
~~~
### array\_sum() - 數組內元素相加
函數功能:計算數組內所有元素相加的結果,空數組返回0。
~~~
<?php
// 數組內元素相加
$result = array_sum([1,2,3,4]) // $result = 10
?>
~~~
### array\_push() - 數組疊加元素
函數功能:給數組疊加(入棧)元素,可以是多個。
~~~
<?php
// 數組加元素
$resultArr = array_push([1,2],3,4); // $resultArr = [1,2,3,4]
?>
~~~
### array\_search() - 數組搜索鍵值
函數功能:搜索數組指定值,搜索成功將返回首個元素的鍵值。
~~~
<?php
// 把數組搜索 needle 的結果保存起來
$result = array_search('needle', $targetArr);
?>
~~~
### array\_shift() - 數組第一個元素出棧(刪)
函數功能:把數組中的第一個元素刪掉,彈出第一個元素。
~~~
<?php
// 刪掉第一個元素
$resultArr = array_shift([1,2,3]); // [2,3]
?>
~~~
### implode() - 數組轉字符串
函數功能:把數組以一定格式轉為字符串。
~~~
<?php
$arr = array('Hello','World!','I','love','Shanghai!');
echo implode(" ",$arr);// 數組以空格連在一起,轉成字符串
?>
~~~
### explode() - 字符串轉數組
函數功能:把字符串以一定格式切割轉為數組。
~~~
<?php
$str = "Hello world. I love Shanghai!";
print_r (explode(" ",$str));// 字符串以空格的方式切割,轉為數組
?>
~~~
- 一維數組操作方法
- 求得這個數組中各個元素之和
- 取出兩個數組中相同的內容
- 將數組元素組合為字符串implode
- 將字符串轉化為數組explode
- 逗號分割的字符串去重
- 一維數組增加某個值
- PHP從數組中找到指定元素的位置
- 二維或多維數組操作方法
- 根據某一個鍵值合并生成一個新的二維數組
- 二維數組變一維數組
- 二維數組取一個值變一維數組
- php二維數組合并及去重復的方法
- php數組根據某鍵值,把相同鍵值的合并最終生成一個新的二維數組
- 二維數組增加一個值
- 生成無限級樹算法
- sql2md SQL轉化為markdown語法
- PHP修改多維數組中的某個值
- 二維數組
- 省市區聯動的查詢
- PHP求某二維數組,某一列元素的最大最小值
- php 求二維數組的差集
- 按某個鍵值排序
- 基本知識
- 鍵名作為鍵值
- PHP中foreach的用法和實例
- PHP foreach 循環案例
- php5.3以后的foreach的&符號不建議使用
- PHP中判斷變量為空的幾種方法小結
- 判斷PHP數組是否為空的代碼
- php刪除數組中指定值的元素的幾種方法
- PHP刪除數組中的指定元素
- php數組函數序列之array_keys() - 獲取數組鍵名
- php 中更簡潔的三元運算符 ?:
- 函數
- 字符串函數
- 數組函數
- 實例
- 將 $arr 中age大于第一個大于30的人增加一項一條信息
- 強大的數組函數