簡體   English   中英

PHP array_chunk-根據變量拆分

[英]PHP array_chunk - split based on variable

是否可以基於數組中的值進行array_chunk

排列

Array (
[4f5hfgb] => Array (
[0] => ACME
[1] => 4f5hfgb
[2] => Aberdeen
)
[sdf4ws] => Array (
[0] => ACME
[1] => sdf4ws
[2] => Birmingham 
)
[dfgdfg54] => Array (
[0] => EDNON
[1] => dfgdfg54
[2] => Birmingham 
)
[345bfg] => Array (
[0] => EDNON
[1] => 345bfg
[2] => Birmingham 
)
[345fgfd] => Array (
[0] => VALVE
[1] => 345fgfd
[2] => Birmingham 
)
)

是否可以對[0]具有相同值的那些塊進行分塊?

所需的輸出

Array (
    [4f5hfgb] => Array (
    [0] => ACME
    [1] => 4f5hfgb
    [2] => Aberdeen
    )
    [sdf4ws] => Array (
    [0] => ACME
    [1] => sdf4ws
    [2] => Birmingham 
    )
)

Array (
    [dfgdfg54] => Array (
    [0] => EDNON
    [1] => dfgdfg54
    [2] => Birmingham 
    )
    [345bfg] => Array (
    [0] => EDNON
    [1] => 345bfg
    [2] => Birmingham 
    )
)

Array (
    [345fgfd] => Array (
    [0] => VALVE
    [1] => 345fgfd
    [2] => Birmingham 
    )
)

如果我理解您的問題,您正在嘗試將鍵0具有相同值的所有元素分組到同一數組中。 您無法使用array_chunk做到這一點,但是下面的循環會生成分組數組

$result = array();

foreach($arr as $k => $v) {
    $result[$v[0]][$k] = $v;
}

print_r($result);

嘗試這個:

$values = array_unique(array_map(
    function ($v) { return $v[0]; },
    $array
));

$result = array();
foreach ($values as $val) {
    $result[] = array_filter($array, function ($v) use ($val) {
        return $v[0] == $val;
    });
}

不, array_chunk根據大小將數組拆分為多個塊。 您可以考慮循環進入數組並將其分塊為所需的結構。

暫無
暫無

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

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