如果我给你一个数组:
$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
。
道歉,我不认为我很清楚。鉴于上述信息,目标是使用这个“插入”函数来插入一个新的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');
目标是找到给定数组中的键并在其前面插入新数组。两个数组都必须是键/值。
答案 0 :(得分:1)
这是一个在所选值之前或之后将元素插入数组的函数。它返回修改后的数组。
localSession.clear()
答案 1 :(得分:0)
溶胶。 1:尝试在php中使用arsort()或类似的排序数组函数。
溶胶。 2:首先是init数组的值,然后使用foreach循环对数组进行排序。
溶胶。 3:您可以创建多维数组,如下所示:
$array[$position]['something']['value'];
然后使用ksort函数按键排序数组。所以,这是我的想法。
另外,准确显示你如何排序数组。 (如输入(某些数据)=>输出(某些数据))
答案 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');