在PHP中基于键对多维数组进行切片的最佳方法


Best way to slice multidimensional array on the basis of keys in PHP?

我有这样一个结果数组:-

    $array = array(
                    'key1' => array('...'),
                    'key2' => array('...'),
                    'key3' => array('...'),
                    'key4' => array('...'),
                    .
                    .
                    .
                    .
                    'keyn' => array('...')
            );

我需要从上面的数组中获得5个元素。第一次是key1key5, key6key10等等......根据条件,我需要对其进行操作。

我需要输出:-

$array = array(
                    'key1' => array('...'),
                    'key2' => array('...'),
                    'key3' => array('...'),
                    'key4' => array('...'),
                    'key5' => array('...')
            );

我可以得到值,如果我的键值直接$array['key1']....$array['key5'],但如果键是未知的值比我遇到了问题。

要遍历这样的数组,可以这样使用array_slice():

$n = count($array);
$len = 5;
for ($i = 0; $i + $len <= $n; $i += $len) {
    $chunk = array_slice($array, $i, $len, true);
    // do work on $chunk
}

你可以直接将数组的前5项拼接或切片。

<?php
 $array = array(
                    'key1' => array('...'),
                    'key2' => array('...'),
                    'key3' => array('...'),
                    'key4' => array('...'),
                    'key5' => array('...'),
                    'key6' => array('...'),
                    'key7' => array('...')
            );
$arraySlice1 = array_slice($array, 0, 5);
$arraySlice2 = array_splice($array, 0, 5);

Slice将保留$array完整,$array仍然保留7项,splice将删除$array返回的结果,因此$array将只保留key6和key7

编辑:一个更好的方法是array_slice。看看这个问题。例子:

$fifthElement = array_slice($array,4,1);  //will get the 5th element

您可以使用foreach的方式提供键和相关值。因此,要获得第五个键值对,您可以这样写:

$i = 1;
foreach($array as $key => $value)
{
    if($i == 5)
    {
        echo "Fifth Key=".$key." value=".$value."'n";
    }
    $i++;
}

array_slice肯定适合你

    $first_five_elements = array_slice($array, 0, 5);

这里是代码页