【问题标题】:How can I get specific range of array just in specific range index by PHP?如何通过 PHP 在特定范围索引中获取特定范围的数组?
【发布时间】:2018-05-02 19:35:09
【问题描述】:

我有一个这样的数组(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]) ,如果它们没有值,则留空或不返回其他值

【问题讨论】:

  • Amm...array_slice?

标签: php arrays filter


【解决方案1】:

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

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

   }

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • array_slice 从输入数组中删除由 offset 和 length 指定的元素,并用替换数组的元素(如果提供)替换它们。但是我只想将指定索引数范围内和数组中所有位置的数组值分开,并用这些新值替换所有以前的数组值。
    • 感谢您的回答。如果数组的某些元素,例如索引2不存在,会发生什么?不显示错误?
    • 我要如果没有某些索引,则不应替换超出索引号指定范围的其他索引,仅返回 0 到 4 之间的索引值($my_arr[0]. ...$my_arr[4]) ,如果它们没有价值,请留空或不返回其他内容
    【解决方案3】:

    试试这个代码

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      相关资源
      最近更新 更多