반응형
PHP : 연관 배열 요소를 배열의 처음으로 이동
연관 배열의 요소를 배열의 시작 부분으로 이동하는 가장 좋은 방법은 무엇입니까?
예를 들어 다음 배열이 있다고 가정합니다.
$myArray = array(
'two' => 'Blah Blah Blah 2',
'three' => 'Blah Blah Blah 3',
'one' => 'Blah Blah Blah 1',
'four' => 'Blah Blah Blah 4',
'five' => 'Blah Blah Blah 5',
);
내가하고 싶은 것은 '하나'요소를 처음으로 이동하고 다음 배열로 끝나는 것입니다.
$myArray = array(
'one' => 'Blah Blah Blah 1',
'two' => 'Blah Blah Blah 2',
'three' => 'Blah Blah Blah 3',
'four' => 'Blah Blah Blah 4',
'five' => 'Blah Blah Blah 5',
);
이것은 작동합니다 :
$myArray = array('one' => $myArray['one']) + $myArray;
숫자 배열 키가 있고 배열 키를 다시 색인화하려는 경우 다음 array_merge
과 같이 입력하는 것이 좋습니다 .
$myArray = array_merge(array($key => $value) + $myArray );
조금 늦었지만 누군가가 필요할 경우를 대비하여이 작은 조각을 만들었습니다.
function arr_push_pos($key, $value, $pos, $arr)
{
$new_arr = array();
$i = 1;
foreach ($arr as $arr_key => $arr_value)
{
if($i == $pos)
$new_arr[$key] = $value;
$new_arr[$arr_key] = $arr_value;
++$i;
}
return $new_arr;
}
필요에 맞게 조정하거나 사용하고 인덱스를 설정 해제하여 이동하십시오. 연관 배열에서도 작동합니다.
다음을 사용하여이 작업을 수행하는 또 다른 간단한 한 줄이 있습니다 array_splice()
.
$myArray = array_splice($myArray,array_search('one',array_keys($myArray)),1) + $myArray;
2 개의 배열이있는 경우 1st에는 2 번째 요소 배열의 맨 위로 이동할 요소가 있습니다.
$result = \array_replace($ArrayToMoveToTop, $myArray);
다음은 코드 샘플입니다.
//source array
$myArray = [
'two' => 'Blah Blah Blah 2',
'three' => 'Blah Blah Blah 3',
'one' => 'Blah Blah Blah 1',
'four' => 'Blah Blah Blah 4',
'five' => 'Blah Blah Blah 5',
];
// set necessary order
$orderArray = [
'one' => '',
'two' => '',
];
//apply it
$result = \array_replace($orderArray, $myArray);
\print_r($result);
There's a function in the comments of the PHP manual for array_unshift which can be used to add an element, with key, to the beginning of an array:
function array_unshift_assoc(&$arr, $key, $val)
{
$arr = array_reverse($arr, true);
$arr[$key] = $val;
return array_reverse($arr, true);
}
Unset the element and reinsert it again with the above function:
$tmp = $myArray['one'];
unset($myArray['one']);
$myArray = array_unshift_assoc($myArray, 'one', $tmp);
A more general approach may be to use uksort to sort your array by keys and provide a sorting function of your own.
반응형
'IT story' 카테고리의 다른 글
객체의 메소드를 얻는 방법? (0) | 2020.09.18 |
---|---|
정규식 / _ / g는 무엇을 의미합니까? (0) | 2020.09.18 |
R 데이터 파일에서 지정한 변수 이름으로 개체를로드하려면 어떻게해야합니까? (0) | 2020.09.18 |
버튼의 아이콘에 새 항목 수 추가-Android (0) | 2020.09.18 |
System.ComponentModel.DataAnnotations를 참조 할 수없는 이유는 무엇입니까? (0) | 2020.09.18 |