>백엔드 개발 >PHP 튜토리얼 >한 열을 기준으로 PHP에서 하위 배열을 그룹화하고 해당 그룹 내의 다른 열에서 쉼표로 구분된 값을 생성하려면 어떻게 해야 합니까?

한 열을 기준으로 PHP에서 하위 배열을 그룹화하고 해당 그룹 내의 다른 열에서 쉼표로 구분된 값을 생성하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-02 15:54:29560검색

How can you group subarrays in PHP based on one column and create comma-separated values from another column within those groups?

한 열을 기준으로 하위 배열을 그룹화하고 그룹 내 다른 열에서 쉼표로 구분된 값 생성

PHP에서는 한 열을 기준으로 하위 배열을 그룹화하고 해당 그룹 내 다른 열의 값을 연결하는 것은 독특한 문제를 야기합니다. 이 문제를 해결하기 위해 우리는 주어진 배열을 원하는 구조화된 형식으로 변환하는 상세한 솔루션을 제공합니다.

제공된 샘플 배열은 각각 두 개의 요소가 있는 하위 배열로 구성됩니다. 목표는 두 번째 요소("열"이라고 함)를 기반으로 하위 배열을 그룹화하고 각 요소가 그룹을 나타내는 새 배열을 만드는 것입니다. 각 그룹 요소 내에서 첫 번째 요소는 그룹화된 하위 배열의 첫 번째 요소를 쉼표로 구분한 목록이어야 하며, 두 번째 요소는 공통 열을 나타냅니다.

이를 달성하기 위해 단계별 방법을 활용합니다. 단계적 접근 방식:

  1. 원래 배열을 통해 반복: 원래 배열의 각 하위 배열을 반복하는 것으로 시작합니다.
  2. 그룹 키 확인: 각 하위 배열에 대해 $groups라는 새 배열에 두 번째 요소(그룹 키)가 있는지 확인합니다. 그렇지 않은 경우 해당 그룹 키에 대해 빈 배열을 초기화합니다.
  3. 그룹에 하위 배열 추가: 그룹 키가 존재하면 현재 하위 배열의 첫 번째 요소를 해당 그룹 배열에 추가합니다.
  4. 구조적 배열 만들기: 원본 배열을 처리한 후 $groups 배열을 반복합니다. 각 그룹에 대해 쉼표를 사용하여 첫 번째 요소의 값을 연결하고 새 배열에 저장합니다. 이를 그룹 키와 결합하여 원하는 구조를 만듭니다.

아래 제공된 PHP 스크립트는 이 접근 방식을 보여줍니다.

<code class="php">// Create the input array
$data = array(
    array('444', '0081'),
    array('449', '0081'),
    array('451', '0081'),
    array('455', '2100'),
    array('469', '2100')
);

// Initialize the groups array
$groups = array();

// Loop through the original array
foreach ($data as $item) {
    $key = $item[1];  // Get the group key

    // Check if the group key exists
    if (!array_key_exists($key, $groups)) {
        $groups[$key] = array();
    }

    // Add the subarray to the group
    $groups[$key][] = $item[0];
}

// Create the structured array
$structured = array();
foreach ($groups as $group => $values) {
    $structured[] = array(implode(',', $values), $group);
}

// Display the output
print_r($structured);</code>

이 스크립트는 입력 배열을 새 배열로 효과적으로 변환합니다. 하위 배열은 공통 열을 기준으로 그룹화되고 그룹화된 하위 배열의 첫 번째 요소는 쉼표로 연결됩니다.

위 내용은 한 열을 기준으로 PHP에서 하위 배열을 그룹화하고 해당 그룹 내의 다른 열에서 쉼표로 구분된 값을 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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