簡體   English   中英

在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個元素。 第一次key1key5key6key10等等……根據條件,我需要對此進行操作。

我需要輸出:-

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

如果我的鍵值直接是$array['key1']....$array['key5']但如果鍵是未知值,那么我可以獲得價值。

提前致謝。

編輯:更好的方法是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()

$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個項目,拼接將從$ array中刪除返回的結果,因此$ array將僅保留key6和key7

array_slice當然適合您

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

這是鍵盤

暫無
暫無

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

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