簡體   English   中英

PHP-按鍵拆分數組

[英]PHP - split array by key

我有以下數組,其中包含有序但不連續的數字鍵:

Array
(
    [4] => 2
    [5] => 3
    [6] => 1
    [7] => 2
    [8] => 1
    [9] => 1
    [10] => 1
)

我需要將數組拆分為2個數組,第一個數組包含5以下的鍵,另一個數組包含5以上的鍵。 請注意,鍵可能會有所不同(例如1,3,5,10),因此我無法使用array_slice因為我不知道偏移量。

您是否知道任何簡單的函數即可完成此任務,而無需使用foreach

剛發現array_slicepreserve_keys參數。

$a = [
    4 => 2,
    5 => 3,
    6 => 1,
    7 => 2,
    8 => 1,
    9 => 1,
    10 => 1
];

$desired_slice_key = 5;
$slice_position = array_search($desired_slice_key, array_keys($a));

$a1 = array_slice($a, 0, $slice_position, true);
$a2 = array_slice($a, $slice_position, count($a), true);

您可以使用array_walk,使用use關鍵字通過引用傳入要添加鍵的數組-類似這樣的方法應該起作用:

$splitArray = [1 => 2, 3 => 1, 5 => 2, 7 => 1, 9 => 3, 10 => 1];

$lt5 = [];
$gt5 = [];

array_walk($splitArray, function(&$val, $key) use (&$lt5, &$gt5) {
    $key < 5 ? $lt5[] = $key : $gt5[] = $key;
});

var_dump($lt5, $gt5);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM