php - 如何在 PHP 数组中的另一个已知(通过键或指针)元素之后有效地插入元素?

标签 php performance arrays

给定一个数组:

$a = array(
    'abc',
    123,
    'k1'=>'v1',
    'k2'=>'v2',
    78,
    'tt',
    'k3'=>'v3'
);

它的内部指针指向其中一个元素,如何在当前元素之后插入一个元素? 以及如何在键已知元素之后插入一个元素,例如“k1”?

表现关怀~

最佳答案

您可以使用 array_keysarray_values 拆分您的数组,然后将它们拼接,然后再次组合它们。

$insertKey = 'k1';

$keys = array_keys($arr);
$vals = array_values($arr);

$insertAfter = array_search($insertKey, $keys) + 1;

$keys2 = array_splice($keys, $insertAfter);
$vals2 = array_splice($vals, $insertAfter);

$keys[] = "myNewKey";
$vals[] = "myNewValue";

$newArray = array_merge(array_combine($keys, $vals), array_combine($keys2, $vals2));

关于php - 如何在 PHP 数组中的另一个已知(通过键或指针)元素之后有效地插入元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1286853/

相关文章:

c - 在未排序的数组中找到差值为输入值 'k' 的一对数字

在函数内调用数组

c# 相当于 php 关联数组?

PhpStorm 没有正确重构类?

php - nginx 提供一些(但不是全部)php 文件作为下载

performance - memcached 和 Redis 等工具的主要用例是什么?

php字符串与0整数比较返回true?

php - MySQL 性能 : Many tables or many rows?

c# - 如何使用Application.targetFrameRate设置目标帧速率以修复不良帧速率(vsync)

java - 显示数组问题可能是由于空格字符造成的