PHP幾種常見的拆分數組的方法

介紹幾種常見的拆分數組的方法:
1、array_slice
2、array_splice
3、array_chunk
4、foreach

逐個介紹:

1、array_slice

函數在數組中根據條件取出一段值,並返回。
註釋:如果數組有字符串鍵,所返回的數組將保留鍵名。

語法:

array_slice(array,start,length,preserve)

直接上例子:

$a = [
	'a' => 1,
	1 => 2,
	'c' => 3,
	2 => 4,
	'e' => 5,
	3 => 6
];
		
$b = array_slice($a,3);	// 從索引3開始截取,索引從0開始,並且鍵名重置
$c = array_slice($a,3, 2);	// 從索引3開始截取,截取長度爲2,並且鍵名重置
$d = array_slice($a, 2, 2, true);	// 從索引3開始截取,截取長度爲2,並且保留原數組的鍵名
print_r($b);
print_r($c);
print_r($d);

結果:

Array
(
    [0] => 4
    [e] => 5
    [1] => 6
)
Array
(
    [0] => 4
    [e] => 5
)
Array
(
    [c] => 3
    [2] => 4
)

2、array_splice

函數從數組中移除選定的元素,並用新元素取代它。該函數也將返回包含被移除元素的數組。
註釋:不保留被替換數組中的鍵名,被保留下的元素的鍵名也會被重置(字符串命名的鍵名會被保留)

語法:

array_splice(array,start,length,array)

例子:

$a = [
	'a' => 1,
	1 => 2,
	'c' => 3,
	2 => 4,
	'e' => 5,
	3 => 6
];

$b = [
	'aa' => 'apple',
	'bb' => 'banana',
	'cc' => 'orange'	
];
$c = $d = $a;

array_splice($a, 2);	// 從索引2位置移除後面的所有元素
print_r($a);
array_splice($c, 3, 2);	// 從索引3位置開始移除個數爲2
print_r($c);
array_splice($d, 2, 2, $b);	// 從索引2位置移除2個元素並用數組b的數據替代被移除的2個元素的位置
print_r($d);

結果:

Array
(
    [a] => 1
    [0] => 2
)
Array
(
    [a] => 1
    [0] => 2
    [c] => 3
    [1] => 6
)
Array
(
    [a] => 1
    [0] => 2
    [1] => apple
    [2] => banana
    [3] => orange
    [e] => 5
    [4] => 6
)

3、array_chunk

函數把數組分割爲新的數組塊
註釋:默認是重置鍵名的,可選參數 preserve_key 是一個布爾值,它指定新數組的元素是否有和原數組相同的鍵(用於關聯數組),還是從 0 開始的新數字鍵(用於索引數組)。默認是分配新的鍵。這裏布爾值但是其實用0或1或者大於1的數字也是可以替代這裏面的布爾值的

語法:

array_chunk(array,size,preserve_key);

例子:

$a = [
	'a' => 1,
	1 => 2,
	'c' => 3,
	2 => 4,
	'e' => 5,
	3 => 6
];

$b = array_chunk($a,4);  	// 以4個元素爲一組進行拆分數組
print_r($b);
$c = array_chunk($a, 4, true);    // 以4個元素爲一組進行拆分數組並且保留原數組的鍵名
print_r($c);
$d = array_chunk($a, 4, 1);		// 以4個元素爲一組進行拆分數組並且保留原數組的鍵名
print_r($d);

結果:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
        )

    [1] => Array
        (
            [0] => 5
            [1] => 6
        )

)
Array
(
    [0] => Array
        (
            [a] => 1
            [1] => 2
            [c] => 3
            [2] => 4
        )

    [1] => Array
        (
            [e] => 5
            [3] => 6
        )

)
Array
(
    [0] => Array
        (
            [a] => 1
            [1] => 2
            [c] => 3
            [2] => 4
        )

    [1] => Array
        (
            [e] => 5
            [3] => 6
        )

)

foreach我就不介紹了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章