在PHP的密钥基础上切片多维数组的最佳方法?

时间:2013-05-06 14:24:33

标签: php arrays multidimensional-array

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

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

我需要从上面的数组中获取5个元素。第一次key1key5key6key10  ......等等......根据条件我需要对此进行操作。

我需要输出: -

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

如果我的键值直接$array['key1']....$array['key5'],我可以获得值,但如果键值不是未知值 我面临着问题。

提前致谢。

4 个答案:

答案 0 :(得分:0)

编辑:更好的方法是array_slice。请参阅this问题。例如:

$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++;
}

答案 1 :(得分:0)

要迭代这样的数组,您可以这样使用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
}

答案 2 :(得分:0)

你可以将前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

答案 3 :(得分:0)

array_slice肯定适合你

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

这是codepad