【问题标题】:Which way efficient to cut from associated array first + last elemets(key + value)从关联数组第一个+最后一个元素(键+值)中删除的有效方式
【发布时间】:2011-02-24 12:30:44
【问题描述】:

从关联数组中切出第一个+最后一个元素(键+值)的有效方法。

(可以在未设置的情况下使用,但 array_pop/array_shift/array_slice 不适用于关联数组)

例子:

输入数组:

$input=array(20=>'v1', 56=>'v2', 80=>'v3',88=>'v4');

输出数组:

$input=array( 56=>'v2', 80=>'v3');

谢谢

【问题讨论】:

  • 为什么您建议的函数不适用于关联数组?
  • array_poparray_shift 怎么不起作用?
  • 如果此功能有效,请举例说明
  • 手册说“所有数字数组键都将被修改为从零开始计数,而文字键不会被触摸。”虽然 Yosef 使用“随机”整数作为键(即 20,56,80,88 而不是 0,1,2,3),但它们仍然是“数字键”,因此它们被转换为 0,1,2,...
  • array_slice() 工作得很好,如果$preserve_keys(第四个参数)设置为true

标签: php arrays multidimensional-array associative-array


【解决方案1】:

array_slice() 是要走的路:

$input = array(20=>'v1', 56=>'v2', 80=>'v3',88=>'v4');
$output = array_slice($input, 1, -1, true);
print_r($output);

输出:

Array
(
    [56] => v2
    [80] => v3
)

不要忘记将 true 指定为第四个参数,否则将不会保留密钥(即,您将获得 0,1,2,... 作为密钥)。

【讨论】:

    【解决方案2】:
    $a = array_slice($a, 1, -1, true);
    

    (是的,这适用于关联数组。)

    【讨论】:

      猜你喜欢
      • 2011-06-06
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 2017-02-25
      • 1970-01-01
      相关资源
      最近更新 更多