>  기사  >  백엔드 개발  >  PHP에서 2차원 배열을 1차원 배열로 변환하는 방법

PHP에서 2차원 배열을 1차원 배열로 변환하는 방법

PHPz
PHPz원래의
2023-04-26 14:18:52833검색

개발 중에 2차원 배열을 1차원 배열로 변환해야 하는 경우가 있을 수 있습니다. 이 문서에서는 PHP에서 이 작업을 수행하는 방법을 소개합니다.

PHP의 2차원 배열은 여러 개의 1차원 배열로 구성된 배열이고, 1차원 배열은 단일 값으로 구성된 배열입니다. 따라서 2차원 배열을 1차원 배열로 변환하려면 1차원 배열의 모든 값을 추출한 후 새로운 1차원 배열에 넣어야 합니다.

1. 루프를 사용하여 2차원 배열을 순회합니다

PHP에서는 루프를 사용하여 2차원 배열을 순회하고 새로운 1차원 배열에 값을 추가할 수 있습니다. 구체적인 구현은 다음과 같습니다.

$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion'));

$singleArr = array();
foreach ($multiArr as $arr) {
    foreach ($arr as $value) {
        $singleArr[] = $value;
    }
}

print_r($singleArr);

위 코드에서는 두 개의 1차원 배열을 포함하는 2차원 배열 $multiArr이 먼저 정의됩니다. 그런 다음 빈 1차원 배열 $singleArr을 만든 다음 두 개의 중첩된 foreach를 사용하여 $multiArr 배열의 각 1차원 배열을 반복합니다. 및 해당 값을 추가하고 해당 값을 $singleArr에 추가합니다. 마지막으로 print_r() 함수를 사용하여 $singleArr을 인쇄하면 출력 결과는 다음과 같습니다. $multiArr,它包含两个一维数组。接着创建一个空的一维数组 $singleArr,然后使用两个嵌套的 foreach 循环遍历 $multiArr 中的每个一维数组和其中的值,并将值添加到 $singleArr 中。最后使用 print_r() 函数打印出 $singleArr,输出结果为:

Array
(
    [0] => apple
    [1] => banana
    [2] => pear
    [3] => cat
    [4] => dog
    [5] => lion
)

二、使用 call_user_func_array() 函数

除了循环遍历,还可以使用 call_user_func_array() 函数来将一个多维数组转换为一个一维数组。具体代码如下:

$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion'));

$singleArr = call_user_func_array('array_merge', $multiArr);

print_r($singleArr);

在上面的代码中,首先定义了一个二维数组 $multiArr,它包含两个一维数组。接着使用 call_user_func_array() 函数,第一个参数为 array_merge 函数名,表示要执行合并操作,第二个参数为 $multiArr 数组,表示要合并的多个数组。组合完的新数组就是一维数组 $singleArr。最后使用 print_r() 函数打印出 $singleArr,输出结果为:

Array
(
    [0] => apple
    [1] => banana
    [2] => pear
    [3] => cat
    [4] => dog
    [5] => lion
)

三、使用 array_reduce() 函数

除了上面两种方式,还可以使用 array_reduce() 函数来将二维数组转换为一维数组。具体的实现方式如下:

$multiArr = array(array('apple', 'banana', 'pear'), array('cat', 'dog', 'lion'));

$singleArr = array_reduce($multiArr, 'array_merge', array());

print_r($singleArr);

在上面的代码中,首先定义了一个二维数组 $multiArr,它包含两个一维数组。接着使用 array_reduce() 函数,第一个参数为 $multiArr 数组,表示要进行合并操作的数组,第二个参数为 array_merge 函数名,表示要执行合并操作,第三个参数为一个空的数组,表示初始的一维数组为空数组。最后将组合完的新数组存放到一维数组 $singleArr 中,并使用 print_r() 函数打印输出结果,输出结果与前两种方式一样:

Array
(
    [0] => apple
    [1] => banana
    [2] => pear
    [3] => cat
    [4] => dog
    [5] => lion
)

四、总结

在本文中,介绍了三种将二维数组转换为一维数组的方式,在实际开发中可以根据需要选择合适的方式。对于简单的二维数组而言,第一种方式循环遍历可能更加容易理解和实现;对于较为复杂的多维数组,call_user_func_array() 函数和 array_reduce()rrreee

2. call_user_func_array()를 사용하세요. > 함수 🎜🎜루프 외에도 call_user_func_array() 함수를 사용하여 다차원 배열을 1차원 배열로 변환할 수도 있습니다. 구체적인 코드는 다음과 같습니다. 🎜rrreee🎜위 코드에서는 2개의 1차원 배열을 포함하는 2차원 배열 $multiArr이 먼저 정의됩니다. 그런 다음 call_user_func_array() 함수를 사용하세요. 첫 번째 매개변수는 array_merge 함수 이름으로, 두 번째 매개변수는 $multiArr입니다. 병합할 여러 배열을 나타내는 배열입니다. 결합된 새 배열은 1차원 배열 $singleArr입니다. 마지막으로 print_r() 함수를 사용하여 $singleArr를 인쇄하면 출력 결과는 다음과 같습니다. 🎜rrreee🎜3 array_reduce()를 사용하세요. > 함수 🎜🎜위의 방법 외에도 두 가지 방법 모두 array_reduce() 함수를 사용하여 2차원 배열을 1차원 배열로 변환할 수도 있습니다. 구체적인 구현은 다음과 같습니다. 🎜rrreee🎜위 코드에서는 두 개의 1차원 배열을 포함하는 2차원 배열 $multiArr이 먼저 정의됩니다. 그런 다음 array_reduce() 함수를 사용하세요. 첫 번째 매개변수는 병합할 배열을 나타내는 $multiArr 배열입니다. > 병합 작업을 수행함을 나타내는 함수 이름입니다. 세 번째 매개변수는 빈 배열이며, 초기 1차원 배열이 빈 배열임을 나타냅니다. 마지막으로 결합된 새 배열을 1차원 배열 $singleArr에 저장하고 print_r() 함수를 사용하여 출력 결과를 인쇄합니다. 처음 두 가지 방법: 🎜rrreee🎜4. 요약🎜🎜이 기사에서는 2차원 배열을 1차원 배열로 변환하는 세 가지 방법을 소개합니다. 실제 개발에서는 필요에 따라 적절한 방법을 선택할 수 있습니다. 간단한 2차원 배열의 경우 루프 탐색의 첫 번째 방법이 더 복잡한 다차원 배열의 경우 call_user_func_array() 함수와 array_reduce()를 사용하여 이해하고 구현하는 것이 더 쉬울 수 있습니다. 코드 > 함수가 더 편리할 수 있습니다. 🎜

위 내용은 PHP에서 2차원 배열을 1차원 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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