如何通过PHP在特定范围索引中获取特定范围的数组?

时间:2017-11-19 13:40:03

标签: php arrays filter

我有一个像这样的数组(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");

我该怎么做?

更新

我只想分离数组的值($ my_arr),这些值在指定数量的索引范围内和数组中的任何位置,并用这些新值替换所有以前的数组($ my_arr)值

**

如果没有某些索引,则不应替换索引号指定范围之外的其他索引,只返回0到4之间的索引值($ my_arr [0] .... $ my_arr [4]),如果他们没有空值或者没有返回别的东西

3 个答案:

答案 0 :(得分:2)

经过多次测试后,我找到了一个简单的解决方案:

<a href="#"><img class="logo" src="logo.png"></a>

   

答案 1 :(得分:1)

<强> 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"
}

答案 2 :(得分:0)

试试此代码

$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);