[英]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.