2014-10-20 3 views
0

저는 이것이 다소 기본적인 PHP 배열 질문이라고 생각합니다. 그러나 저는 35 시간 동안 아무런 수면을 할 수 없으며 실제로 이것을 끝내기 만하면됩니다. 빨리 posibble로서 나는 잠에 도착할 수있다. .. 정직한 단지 유감스럽게 생각해 라! PHP에서 다중 다차원 PHP 배열을 멋진 다차원 배열로 조작하십시오.

나는이 변수 $design_values

에게 만약 내가 print_r($design_values);는 아래에 보여 무엇인지 뱉어이 ARRAY. 그것은 "Desing"데이터베이스 레코드입니다. 이 경우

는 수까지 0에서 디자인의 숫자가있을 수있는 최초의 2 배열 응용 프로그램에서 01

을 keyys 구성이 개 설계 기록이있다.

이제 2 디자인 레코드는 24 개입니다. 두 개의 디자인 어레이 각각에 대한 배열 키가 더 있습니다.

이러한 24 배열 키는 0에서 23까지 번호가 지정됩니다.

이제 각각의 24 개의 Array 키 아래에 2 개의 키가 있습니다. 하나는 name이고 다른 하나는 value입니다.

배열 $design_values을 가져 와서 해당 배열의 새 배열을 만들어야합니다. 새로운 Array는 작업하기가 훨씬 쉽습니다.

따라서 namevalue 키는 key =>value을 구성해야합니다. 새 배열은 다음과 같이 보일 것입니다.

현재 배열이 완전한 악몽 인 이유는 API 호출에서이 데이터를 반환하는 기존 라이브러리에서 가져 오는 형식이기 때문입니다.

누군가 내가이 어레이를 원하는 어레이로 조작하는 것을 도울 수 있다면 나는 감사 할 것입니다! 나는 운이없는 2 시간 동안 그것으로 어지럽 혔다.

원하는 새 Array 형식 :

Array 
(
    [0] => Array 
     (
      ['assigned_user_name'] => 'Jason Administrator', 
      ['modified_by_name'] => 'Jason Administrator', 
      ['created_by_name'] => 'Jason Administrator', 
      ['id'] => '4c5c3c08-2b14-9f9c-6cee-542c56cac7b1', 
      ['date_entered'] => '2014-10-01 19:29:32', 
      ....continued for all 24 record items 
     ), 
    [1] => Array 
     (
      ['assigned_user_name'] => 'Jason Administrator', 
      ['modified_by_name'] => 'Jason Administrator', 
      ['created_by_name'] => 'Jason Administrator', 
      ['id'] => '4c5c3c08-2b14-9f9c-6cee-542c56cac7b1', 
      ['date_entered'] => '2014-10-01 19:29:32', 
      ....continued for all 24 record items 
     ) 
) 

현재 Array 형식 :

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [name] => assigned_user_name 
        [value] => Jason Administrator 
       ) 

      [1] => Array 
       (
        [name] => modified_by_name 
        [value] => Jason Administrator 
       ) 

      [2] => Array 
       (
        [name] => created_by_name 
        [value] => Jason Administrator 
       ) 

      [3] => Array 
       (
        [name] => id 
        [value] => 4c5c3c08-2b14-9f9c-6cee-542c56cac7b1 
       ) 

      [4] => Array 
       (
        [name] => name 
        [value] => test 
       ) 

      [5] => Array 
       (
        [name] => date_entered 
        [value] => 2014-10-01 19:29:32 
       ) 

      [6] => Array 
       (
        [name] => date_modified 
        [value] => 2014-10-01 19:29:32 
       ) 

      [7] => Array 
       (
        [name] => modified_user_id 
        [value] => 1 
       ) 

      [8] => Array 
       (
        [name] => created_by 
        [value] => 1 
       ) 

      [9] => Array 
       (
        [name] => description 
        [value] => 
       ) 

      [10] => Array 
       (
        [name] => deleted 
        [value] => 0 
       ) 

      [11] => Array 
       (
        [name] => assigned_user_id 
        [value] => 1 
       ) 

      [12] => Array 
       (
        [name] => chann_channelqms_id_c 
        [value] => 
       ) 

      [13] => Array 
       (
        [name] => channelqms 
        [value] => 
       ) 

      [14] => Array 
       (
        [name] => design_name 
        [value] => 
       ) 

      [15] => Array 
       (
        [name] => design_number 
        [value] => 
       ) 

      [16] => Array 
       (
        [name] => overall_height 
        [value] => 
       ) 

      [17] => Array 
       (
        [name] => overall_width 
        [value] => 
       ) 

      [18] => Array 
       (
        [name] => show_to_customer 
        [value] => 1 
       ) 

      [19] => Array 
       (
        [name] => uploadfile 
        [value] => 2014-09-29_21-57-50.png 
       ) 

      [20] => Array 
       (
        [name] => nam_channelletterqms_nam_channelletterqms_designs_name 
        [value] => Test 
       ) 

      [21] => Array 
       (
        [name] => price_c 
        [value] => 
       ) 

      [22] => Array 
       (
        [name] => shipping_c 
        [value] => 
       ) 

      [23] => Array 
       (
        [name] => totalprice_c 
        [value] => 
       ) 

     ) 

    [1] => Array 
     (
      [0] => Array 
       (
        [name] => assigned_user_name 
        [value] => Jason Administrator 
       ) 

      [1] => Array 
       (
        [name] => modified_by_name 
        [value] => Jason Administrator 
       ) 

      [2] => Array 
       (
        [name] => created_by_name 
        [value] => Jason Administrator 
       ) 

      [3] => Array 
       (
        [name] => id 
        [value] => 86f21f44-4b21-1826-3592-542c59e4be66 
       ) 

      [4] => Array 
       (
        [name] => name 
        [value] => fdtgrfdhg 
       ) 

      [5] => Array 
       (
        [name] => date_entered 
        [value] => 2014-10-01 19:41:54 
       ) 

      [6] => Array 
       (
        [name] => date_modified 
        [value] => 2014-10-19 19:30:45 
       ) 

      [7] => Array 
       (
        [name] => modified_user_id 
        [value] => 1 
       ) 

      [8] => Array 
       (
        [name] => created_by 
        [value] => 1 
       ) 

      [9] => Array 
       (
        [name] => description 
        [value] => 
       ) 

      [10] => Array 
       (
        [name] => deleted 
        [value] => 0 
       ) 

      [11] => Array 
       (
        [name] => assigned_user_id 
        [value] => 1 
       ) 

      [12] => Array 
       (
        [name] => chann_channelqms_id_c 
        [value] => 
       ) 

      [13] => Array 
       (
        [name] => channelqms 
        [value] => 
       ) 

      [14] => Array 
       (
        [name] => design_name 
        [value] => design name 
       ) 

      [15] => Array 
       (
        [name] => design_number 
        [value] => 313 
       ) 

      [16] => Array 
       (
        [name] => overall_height 
        [value] => 22 
       ) 

      [17] => Array 
       (
        [name] => overall_width 
        [value] => 22 
       ) 

      [18] => Array 
       (
        [name] => show_to_customer 
        [value] => 1 
       ) 

      [19] => Array 
       (
        [name] => uploadfile 
        [value] => 2014-09-29_21-57-50.png 
       ) 

      [20] => Array 
       (
        [name] => nam_channelletterqms_nam_channelletterqms_designs_name 
        [value] => Test 
       ) 

      [21] => Array 
       (
        [name] => price_c 
        [value] => 
       ) 

      [22] => Array 
       (
        [name] => shipping_c 
        [value] => 
       ) 

      [23] => Array 
       (
        [name] => totalprice_c 
        [value] => 
       ) 

     ) 

) 
+0

마음을? – Darren

답변

3

소스에서 변경할 수없는 경우 여기에는 한 가지 방법이 있습니다 (PHP> = 5.5).0) array_column에 필요한 :

foreach($design_values as $key => $values) { 
    $result[$key] = array_combine(
            array_column($values, 'name'), 
            array_column($values, 'value')); 
} 

또는 아마도 쉽게 :

foreach($design_values as $key => $values) { 
    $result[$key] = array_column($values, 'value', 'name'); 
} 

우리의 사용을 그런 식으로 데이터를두고 루프를 보여주는 PHP Implementation of array_column

+0

이 훌륭한 작동합니다, array_column PHP 구현도 주셔서 감사합니다, 나는 처음에는 운이 좋았다고 생각! 필요에 따라 작동합니다. – JasonDavis

2

당신은 아마 첫 번째 배열을 만들 때 원하는 배열을 생성해야하지만 당신이 돈이 ' 그걸 제어 할 수 있고, 다음과 같이 뭔가를 컨버팅하고 싶다면 :

$newArray = array(); 

foreach($oldArray as $row){ 
    $tmp = array(); 
    foreach($row as $values){ 
     $tmp[$values['name']] = $values['value']; 
    } 
    $newArray[] = $tmp; 
} 

print_r($newArray); 
관련 문제