> 백엔드 개발 > PHP 튜토리얼 > PHP 개발 스킬(3) - 다차원 배열을 1차원 배열로 변환하는 자세한 코드 설명

PHP 개발 스킬(3) - 다차원 배열을 1차원 배열로 변환하는 자세한 코드 설명

黄舟
풀어 주다: 2023-03-06 13:40:02
원래의
1767명이 탐색했습니다.

일반적인 프로젝트 개발에서는 다차원 배열을 1차원 배열로 변환하는 상황을 자주 사용하는데, 많은 프로그래머가 이를 변환하지 않고, 좋은 알고리즘을 생각하지 못하고 난잡한 계산 방법을 사용하는 경우도 있습니다. 간신히 변환을 잘 하지만 작성된 프로그램 코드가 너무 중복되어 프로그램의 시간 복잡도와 공간 복잡도가 매우 커집니다. 아래에서는 이러한 상황을 어떻게 달성했는지 설명할 것이며 코드는 간단하고 명확합니다.

구현 방법:

Ⅰ 재귀 호출을 사용합니다.
Ⅱ 먼저 결과를 저장하기 위해 정적 배열 상수를 정의합니다.
          IV 판단 배열, 재귀 호출 메서드인 경우
          Ⅴ 그렇지 않은 경우 결과를 정적 배열 상수에 넣습니다.
            Ⅵ 결과를 반환합니다(정적 배열 상수).

구현 코드:

<?php  
  
/** 
 * ======================================= 
 * Created by Zhihua_W. 
 * Author: Zhihua_W 
 * Date: 2016/11/28 0003 
 * Time: 上午 9:11 
 * Project: PHP开发小技巧 
 * Power: 实现多维数组转化为一维数组 
 * ======================================= 
 */  
  
/** 
 * 多维数组转化为一维数组 
 * @param array $array 多维数组 
 * @return array $result_array 一维数组 
 */  
function array_multi2single($array)  
{  
    //首先定义一个静态数组常量用来保存结果  
    static $result_array = array();  
    //对多维数组进行循环  
    foreach ($array as $value) {  
        //判断是否是数组,如果是递归调用方法  
        if (is_array($value)) {  
            array_multi2single($value);  
        } else  //如果不是,将结果放入静态数组常量  
            $result_array [] = $value;  
    }  
    //返回结果(静态数组常量)  
    return $result_array;  
}  
  
$arr = array(  
    array(  
        &#39;name&#39; => &#39;a&#39;,  
        &#39;sex&#39; => &#39;m&#39;,  
        &#39;sort&#39; => 5  
    ),  
    array(  
        &#39;name&#39; => &#39;c&#39;,  
        &#39;sex&#39; => &#39;m&#39;,  
        &#39;sort&#39; => 8  
    ),  
    array(  
        &#39;name&#39; => &#39;g&#39;,  
        &#39;sex&#39; => &#39;m&#39;,  
        &#39;sort&#39; => 3  
    ),  
    array(  
        &#39;name&#39; => &#39;e&#39;,  
        &#39;sex&#39; => &#39;w&#39;,  
        &#39;sort&#39; => 6  
    ),  
    array(  
        &#39;name&#39; => &#39;b&#39;,  
        &#39;sex&#39; => &#39;w&#39;,  
        &#39;sort&#39; => 2  
    ),  
);  
  
print_r(array_multi2single($arr));  
  
?>
로그인 후 복사

결과를 ​​인쇄하고 다차원 배열을 1차원 배열로 변환:

Array  
(  
    [0] => a  
    [1] => m  
    [2] => 5  
    [3] => c  
    [4] => m  
    [5] => 8  
    [6] => g  
    [7] => m  
    [8] => 3  
    [9] => e  
    [10] => w  
    [11] => 6  
    [12] => b  
    [13] => w  
    [14] => 2  
)
로그인 후 복사


위 내용은 PHP 개발 스킬(3) - 다차원 배열을 1차원 배열로 변환하는 자세한 코드 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿