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

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

黄舟
黄舟원래의
2017-03-10 18:38:451736검색

일반적인 프로젝트 개발에서는 다차원 배열을 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.