将所需索引处的数组插入数组的关联数组中
Insert array at desired index into an associate array of arrays
我有一个如下所示的数组
$arr=array(
array(
'id'=> 342,
'name' =>'srikanth',
'age' => 32
),
array(
'id'=> 409,
'name' =>'Ashok',
'age' => 24
),
array(
'id'=> 314,
'name' =>'Chakri',
'age' => 25
),
array(
'id'=> 208,
'name' =>'saikiran',
'age' => 27
)
);
我必须从数组中查找特定的 id,例如 id=409,我正在这样做
$key=array_search("409",array_column($arr,"id"));
并将数组复制到如下临时变量并取消设置:
$tmp=$arr[$key];
unset($arr[$key]);
现在我想要的是在 $arr 中我想要的索引处插入临时数组。
我使用下面的函数插入到我想要的索引中,但没有得到想要的结果。
function insertAt($array = [], $item = [], $position = 0) {
$previous_items = array_slice($array, 0, $position, true);
$next_items = array_slice($array, $position, NULL, true);
return $previous_items + $item + $next_items;
}
$arr=insertAt($arr,$tmp,0);
我想要索引为 0 的临时数组(我知道 array_unshift :) 并不总是索引为 0),我的结果数组应该如下所示。
$arr=array(
array(
'id'=> 409,
'name' =>'Ashok',
'age' => 24
),
array(
'id'=> 342,
'name' =>'srikanth',
'age' => 32
),
array(
'id'=> 314,
'name' =>'Chakri',
'age' => 25
),
array(
'id'=> 208,
'name' =>'saikiran',
'age' => 27
)
);
array_splice()
为您完成工作:
// Find current position
$key = array_search(409, array_column($arr, 'id'));
// Get the element
$tmp = $arr[$key];
// Remove it from array
unset($arr[$key]);
// Insert it at a new position
$position = 0;
$arr = array_splice($arr, $position, 0, array($tmp));
我有一个如下所示的数组
$arr=array(
array(
'id'=> 342,
'name' =>'srikanth',
'age' => 32
),
array(
'id'=> 409,
'name' =>'Ashok',
'age' => 24
),
array(
'id'=> 314,
'name' =>'Chakri',
'age' => 25
),
array(
'id'=> 208,
'name' =>'saikiran',
'age' => 27
)
);
我必须从数组中查找特定的 id,例如 id=409,我正在这样做
$key=array_search("409",array_column($arr,"id"));
并将数组复制到如下临时变量并取消设置:
$tmp=$arr[$key];
unset($arr[$key]);
现在我想要的是在 $arr 中我想要的索引处插入临时数组。
我使用下面的函数插入到我想要的索引中,但没有得到想要的结果。
function insertAt($array = [], $item = [], $position = 0) {
$previous_items = array_slice($array, 0, $position, true);
$next_items = array_slice($array, $position, NULL, true);
return $previous_items + $item + $next_items;
}
$arr=insertAt($arr,$tmp,0);
我想要索引为 0 的临时数组(我知道 array_unshift :) 并不总是索引为 0),我的结果数组应该如下所示。
$arr=array(
array(
'id'=> 409,
'name' =>'Ashok',
'age' => 24
),
array(
'id'=> 342,
'name' =>'srikanth',
'age' => 32
),
array(
'id'=> 314,
'name' =>'Chakri',
'age' => 25
),
array(
'id'=> 208,
'name' =>'saikiran',
'age' => 27
)
);
array_splice()
为您完成工作:
// Find current position
$key = array_search(409, array_column($arr, 'id'));
// Get the element
$tmp = $arr[$key];
// Remove it from array
unset($arr[$key]);
// Insert it at a new position
$position = 0;
$arr = array_splice($arr, $position, 0, array($tmp));