복붙노트

PHP에서 다른 배열로 하나의 배열 만들기

PHP

PHP에서 다른 배열로 하나의 배열 만들기

나는이 배열을 가지고있다. 이것은 2 차원 배열입니다.

$MainArray = Array
(
    [0] => Array
        (
            [Job_Name] => WXYZ
            [Quantity] => 1000
            [Machine_Name] => Machine1
            [Start_Date] => 2014-07-30 00:00:00
            [Completion_Date] => 2014-08-02 00:00:00
            [Labor] => 4
        )
    [1] => Array
        (
            [Job_Name] => ABCD
            [Quantity] => 1500
            [Machine_Name] => Machine2
            [Start_Date] => 2014-08-08 00:00:00
            [Completion_Date] => 2014-08-14 00:00:00
            [Labor] => 2
        )
    [2] => Array
        (
            [Job_Name] => BCDA
            [Quantity] => 1200
            [Machine_Name] => Machine1
            [Start_Date] => 2014-08-02 00:00:00
            [Completion_Date] => 2014-08-07 00:00:00
            [Labor] => 1
        )
 )

이 정보를 사용하여 다음과 같은 새로운 3 차원 배열을 만들고 싶습니다.

$ConvertedArray = Array
(
    [Machine1] => Array
        (
            [0] => Array
               (
                  [Job_Name] => WXYZ
                  [Quantity] => 1000
                  [Start_Date] => 2014-07-30 00:00:00
                  [Completion_Date] => 2014-08-02 00:00:00
                  [Labor] => 4
               )
            [1] => Array
               (
                  [Job_Name] => BCDA
                  [Quantity] => 1200
                  [Start_Date] => 2014-08-02 00:00:00
                  [Completion_Date] => 2014-08-07 00:00:00
                  [Labor] => 1
               )
         )
      [Machine2] => Array
        (
            [0] => Array
               (
                  [Job_Name] => ABCD
                  [Quantity] => 1500
                  [Machine_Name] => Machine2
                  [Start_Date] => 2014-08-08 00:00:00
                  [Completion_Date] => 2014-08-14 00:00:00
                  [Labor] => 2
               )
         )   
)

이것에 대한 도움을 주시면 감사하겠습니다. 나는 원래 배열을 사용하여 새로운 배열을 만드는 방법을 알아야 할 필요가있다. 그래서 기본적으로 각 머신의 모든 작업을 그룹화하고 그 작업의 키는 원래의 배열에있는 방법에 따라 다릅니다. 따라서 원래 배열에 키 2가있는 작업이 있고 다른 작업에 해당 컴퓨터의 상위 키가없는 경우 해당 작업의 키가 0이되고 해당 컴퓨터 이름으로 새 키를 만듭니다.

이 일에 정말로 도움을 주셔서 감사합니다.

해결법

  1. ==============================

    1.

    foreach ($MainArray as $value) {
        $name = $value['Machine_Name'];
        unset($value['Machine_Name']);
        $ConvertedArray[$name][] = $value;
    }
    
  2. ==============================

    2.아래 코드를 사용하십시오 : -

    아래 코드를 사용하십시오 : -

    $result = [];
    foreach($MainArray as $record){
     $result[$record['Machine_Name']][] = $record;
    }
    
    echo '<pre>'; print_r($result);
    

    산출:-

    Array
    (
        [Machine1] => Array
            (
                [0] => Array
                   (
                      [Job_Name] => WXYZ
                      [Quantity] => 1000
                      [Start_Date] => 2014-07-30 00:00:00
                      [Completion_Date] => 2014-08-02 00:00:00
                      [Labor] => 4
                   )
                [1] => Array
                   (
                      [Job_Name] => BCDA
                      [Quantity] => 1200
                      [Start_Date] => 2014-08-02 00:00:00
                      [Completion_Date] => 2014-08-07 00:00:00
                      [Labor] => 1
                   )
             )
          [Machine2] => Array
            (
                [0] => Array
                   (
                      [Job_Name] => ABCD
                      [Quantity] => 1500
                      [Machine_Name] => Machine2
                      [Start_Date] => 2014-08-08 00:00:00
                      [Completion_Date] => 2014-08-14 00:00:00
                      [Labor] => 2
                   )
             )   
    )
    
  3. from https://stackoverflow.com/questions/35473174/creating-one-array-from-another-array-in-php by cc-by-sa and MIT license