簡體   English   中英

如何通過PHP在特定范圍索引中獲取特定范圍的數組?

[英]How can I get specific range of array just in specific range index by PHP?

我有一個像這樣的數組(PHP代碼):

$my_arr=array(0=>"Joe",1=>"Mike",2=>"Simo","Peter"=>"35", 3=>"Ben" , "Ben"=>"37", 4=>"Nik" , "Joe"=>"43");

我只想獲取特定於索引范圍的值,並用這些新值替換以前的數組值。

$rang= 0-4 OR 0,1,2,3,4 //range of index values.
$my_arr= filtered array value in range index of $range.

我想得到這個結果:

$my_arr=array(0=>"Joe",1=>"Mike",2=>"Simo", 3=>"Ben" , 4=>"Nik");

我應該怎么做?

更新:

我只想分隔指定索引數范圍內以及數組中各處的array($ my_arr)值,並用這些新值替換所有以前的array($ my_arr)值。

**

如果沒有某些索引,則不應替換超出索引編號指定范圍的其他索引,而只能返回0到4之間的索引值($ my_arr [0] .... $ my_arr [4]),如果他們沒有價值,請留空或不退還其他東西

經過幾次測試,我找到了一個簡單的解決方案:

foreach($my_arr as $indx=>$val )
   {
       if(is_int($indx) && ($indx>=0 && $indx<=4))
       {
           $my_arr[$indx]= $val; 
        }
       else
       { continue; }

   }

array_slice

提取數組的一部分

array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )

由於數組包含混合鍵,因此應首先對其進行排序,以便首先顯示數字鍵。

根據您的代碼:

ksort($my_arr, SORT_NATURAL);
$my_sliced_arr = array_slice($my_arr, 0, 4);

輸出:

//var_dump($my_sliced_arr)
array(4) {
  [0]=>
  string(3) "Joe"
  [1]=>
  string(4) "Mike"
  [2]=>
  string(4) "Simo"
  [3]=>
  string(3) "Ben"
}

試試這個代碼

$my_arr=array(0=>"Joe",1=>"Mike",2=>"Simo","Peter"=>"35", 3=>"Ben" , "Ben"=>"37", 4=>"Nik" , "Joe"=>"43");
$numerickeys = array_filter(array_keys($my_arr), 'is_int');
foreach($numerickeys as $num)
{
  $ar2[$num] = $my_arr[$num];
}
print_r($ar2);

暫無
暫無

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

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