在php中将某些东西推入数组中的指定位置

时间:2015-05-13 18:58:50

标签: php arrays

如果我给你一个数组:

$a = array('something' => 'value', 'apple' => 'sauce');

并且说了钥匙,找到位置并在它之前插入一些东西 - 你会做什么?

我可以通过以下方式找到答案:

function insert($value, $array)
  foreach($array as $k=>$v) {
    if ($k === $value) {
      // I am stuck here ...
    }
  }
}

但我不知道如何在数组中$k之前插入。此示例假定数组始终具有key=>value

更新1

道歉,我不认为我很清楚。鉴于上述信息,目标是使用这个“插入”函数来插入一个新的key =>值,所以给定上面的示例数组,我想这样做:

insert(array('new_key' => 'new_value'), 'something', $a)

所以上面的for循环必须改为:

function insert($array, $key, $originalArray)
  foreach($originalArray as $k=>$v) {
    if ($k === $key) {
      // Insert $array right before 'something'
      // I am stuck here ...
    }
  }
}

结果将是一个新的数组,如下所示:

$a = array('new_key' => 'new_value', 'something' => 'value', 'apple' => 'sauce');

目标是找到给定数组中的键并在其前面插入新数组。两个数组都必须是键/值。

3 个答案:

答案 0 :(得分:1)

这是一个在所选值之前或之后将元素插入数组的函数。它返回修改后的数组。

localSession.clear()

答案 1 :(得分:0)

溶胶。 1:尝试在php中使用arsort()或类似的排序数组函数。

溶胶。 2:首先是init数组的值,然后使用foreach循环对数组进行排序。

溶胶。 3:您可以创建多维数组,如下所示:

$array[$position]['something']['value'];

然后使用kso​​rt函数按键排序数组。所以,这是我的想法。

另外,准确显示你如何排序数组。 (如输入(某些数据)=>输出(某些数据))

答案 2 :(得分:0)

是否要使用引用进行适当修改或返回新数组的几种变体:

function insert(&$array, $search, $value) {
    $i = 0;
    foreach($array as $k => $v) {
        if ($k === $search) {
            return array_splice($array, $i+1, 0, $value);
        }
        $i++;
    }
}

$a = array('foo' => 'bar', 'something' => 'value', 'apple' => 'sauce');
insert($a, 'something', 'new value');