이 글에서는 주로 PHP에 관한 몇 가지 배열을 소개하는데, 이는 특정 참조 가치가 있습니다. 이제 모든 사람과 공유합니다. 필요한 친구들이 참조할 수 있습니다.
데이터 구조 시뮬레이션
배열 뒤에 추가
array_push $a=array("red","green"); array_push($a,"blue","yellow"); Array ( [0] => red [1] => green [2] => blue [3] => yellow )
배열 앞에 추가
array_unshift $a=array("a"=>"red","b"=>"green"); array_unshift($a,"blue"); Array ( [0] => blue [a] => red [b] => green )
배열 이전 삭제
$a=array("a"=>"red","b"=>"green","c"=>"blue"); echo array_shift($a); redArray ( [b] => green [c] => blue )
배열 이후 삭제
$a=array("red","green","blue"); array_pop($a); Array ( [0] => red [1] => green )
php 기본 - 2차원 배열 정렬 array_multisort
2차원 배열이나 다차원 배열을 정렬하는 것은 일반적인 문제입니다. PHP에서는 특별한 다중 정렬이 있습니다. -차원 배열 정렬 함수는 아래와 같이 간략하게 소개됩니다.
array_multisort(array1, 정렬 순서, 정렬 유형, array2, array3..)는 여러 배열 또는 다차원 배열을 정렬하는 함수입니다.
array1 필수입니다. 입력 배열을 지정합니다.
정렬 순서 선택 사항. 정렬 순서를 지정합니다. 가능한 값은 SORT_ASC 및 SORT_DESC입니다.
정렬 유형 선택 사항. 정렬 유형을 지정합니다. 가능한 값은 SORT_REGULAR, SORT_NUMERIC, SORT_STRING입니다.
array2 선택사항. 입력 배열을 지정합니다.
array3 선택사항. 입력 배열을 지정합니다.
매개변수의 배열은 테이블 열로 처리되고 행별로 정렬됩니다. 이는 SQL의 ORDER BY 절 기능과 유사합니다. 첫 번째 배열은 정렬할 기본 배열입니다. 배열의 행(값)이 동일한지 비교하면
은 다음 입력 배열의 해당 값의 크기에 따라 정렬됩니다.
첫 번째 매개변수는 배열이고 각 후속 매개변수는 배열이거나 다음 정렬 순서 플래그 중 하나일 수 있습니다(정렬 플래그는 기본 정렬 순서를 변경하는 데 사용됩니다):
SORT_ASC - 기본값, 오름차순으로 정렬. (A-Z)
SORT_DESC - 내림차순으로 정렬합니다. (Z-A)
그런 다음 정렬 유형을 지정할 수 있습니다:
SORT_REGULAR - 기본값. 각 항목을 규칙적인 순서로 배열하세요.
SORT_NUMERIC - 각 항목을 숫자순으로 정렬합니다.
SORT_STRING - 각 항목을 알파벳순으로 정렬합니다.
<?php function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){ if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ $key_arrays[] = $array[$sort_key]; }else{ return false; } } }else{ return false; } array_multisort($key_arrays,$sort_order,$sort_type,$arrays); return $arrays; } $person = array( array('id'=>1,'name'=>'fj','weight'=>100,'height'=>180), array('id'=>2,'name'=>'tom','weight'=>53,'height'=>150), array('id'=>3,'name'=>'jerry','weight'=>120,'height'=>156), array('id'=>4,'name'=>'bill','weight'=>110,'height'=>190), array('id'=>5,'name'=>'linken','weight'=>80,'height'=>200), array('id'=>6,'name'=>'madana','weight'=>95,'height'=>110), array('id'=>7,'name'=>'jordan','weight'=>70,'height'=>170) ); var_dump($person); $person = my_sort($person,'name',SORT_ASC,SORT_STRING); var_dump($person); $person = my_sort($person,'weight'); var_dump($person); ?>
예를 들어 다음 배열과 같습니다.
코드는 다음과 같습니다.
$users = array( array('name' => 'tom', 'age' => 20) , array('name' => 'anny', 'age' => 18) , array('name' => 'jack', 'age' => 22) );
연령별로 작은 것부터 큰 것 순으로 정렬하길 바랍니다. 저자는 두 가지 방법을 정리하여 여러분께 공유해 드렸습니다.
1. array_multisort를 사용하세요
이 방법을 사용하면 나이를 추출하여 1차원 배열로 저장한 후 나이별로 오름차순으로 정렬해야 합니다. 구체적인 코드는 다음과 같습니다.
코드는 다음과 같습니다.
$ages = array(); foreach ($users as $user) { $ages[] = $user['age']; }
array_multisort($ages, SORT_ASC, $users);
실행 후 $users는 정렬된 배열이므로 인쇄해서 볼 수 있습니다. 먼저 나이를 기준으로 오름차순으로 정렬한 후 이름을 기준으로 오름차순으로 정렬해야 하는 경우 방법은 위와 동일하며 최종 정렬 방법은 다음과 같습니다.
코드는 다음과 같습니다.
array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
여기서 핵심은 먼저 정렬할 키를 1차원 배열로 저장한 다음 array_multisort() 함수를 사용하여 키에 따라 배열을 정렬할 수 있다는 것입니다. 물론 여기에서 완전히 정렬할 수 있습니다
array_multisort() 함수는 적용할 수 없습니다.
이 효과는 foreach 순회를 통해서만 얻을 수도 있지만 PHP 개발자가 더 나은 방법을 제공했기 때문에 불필요한 문제를 줄일 수 있습니다.
PHP 2차원 배열 중복 제거 기능
PHP 배열에는 중복을 제거하는 array_unique() 함수가 내장되어 있지만 PHP의 array_unique 함수는 다차원 배열이 아닌 1차원 배열에만 적용됩니다. 배열
array_unique 함수
function unique_arr($array2D,$stkeep=false,$ndformat=true) { // 判断是否保留一级数组键 (一级数组键可以为非数字) if($stkeep) $stArr = array_keys($array2D); // 判断是否保留二级数组键 (所有二级数组键必须相同) if($ndformat) $ndArr = array_keys(end($array2D)); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 foreach ($array2D as $v){ $v = join(",",$v); $temp[] = $v; } //去掉重复的字符串,也就是重复的一维数组 $temp = array_unique($temp); //再将拆开的数组重新组装 foreach ($temp as $k => $v) { if($stkeep) $k = $stArr[$k]; if($ndformat) { $tempArr = explode(",",$v); foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval; } else $output[$k] = explode(",",$v); } return $output; } $array2D=array('first'=>array('title'=>'1111','date'=>'2222'),'second'=>array('title'=>'1111','date'=>'2222'),'third'=>array ('title'=>'2222','date'=>'3333')); print_r($array2D); print_r(unique_arr($array2D,true));
위 내용은 PHP의 일부 배열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!