2014-03-29 4 views
0

나는 이름과 무게가있는 글꼴 배열을 가지고 있습니다.다차원 PHP 배열 처리

print_r($fontarray1); 

Array ( 
    [font] => Open+Sans 
    [weight] => normal 
) 


print_r($fontarray2); 

Array ( 
    [font] => Open+Sans 
    [weight] => bold 
) 

print_r($fontarray3); 

Array ( 
    [font] => Lato 
    [weight] => bolditalic 
) 

나는 예를 들어, "열기 + 산세는"이미 인 경우에 ... 내가 마지막으로 글꼴의 배열과 가중치를 만들고 싶어 글꼴 $ fontarray1, $ fontarray2, $ fontarray3 .. 많은 배열을 가지고 최종 배열 인 경우 추가해서는 안되지만 "Open + Sans"가 다른 "weight"를 가진 최종 Array에 있으면 "Open + Sans"키와 함께 "weight"만 추가해야합니다. 예상 결과는 다음과 같아야합니다. 뭔가 같은 :

Array ( 
    [font] => Oen+Sans 
    [weight] => Array (
     [0] => normal 
     [1] =>bold 
    ) 
    [font] => Lato 
    [weight] => Array (
     [0] => bolditalic 
    ) 

) 

나는 다음과 같은 시도했지만 하나 개의 어레이 내의 다른 배열을 추가하는 방법에 대한 혼란 .. :

,
$final_arr = Array(); 
    if (!in_array($fontarray1['font'], $final_arr)) { 
    $final_arr []= $fontarray1['font']; 

    } else { 
    // already in array, lets check font weight 
    } 
    } 

어떤 도움이나 생각이 높게 평가 될 것입니다. 이 같은 구조와 같은 환호

답변

0

먼저

사용 array_merge

<?php 
$beginning = 'foo'; 
$end = array(1 => 'bar'); 
$result = array_merge((array)$beginning, (array)$end); 
print_r($result); 
?> 

둘째

사용 array_unique

<?php 
$input = array("a" => "green", "red", "b" => "green", "blue", "red"); 
$result = array_unique($input); 
print_r($result); 
?> 
0

Look` 당신을 위해 유용 할 수있다 :

Array( 
    "fontName" => Array( 
    [weight] => Array(
     [0] => "normal" 
    ) 
    ) 
) 
그리고 당신의 기능은 당신은 단지 $ final_arr에 $ fontarray1를 추가하려는

$final_arr = Array(); 
$fontName = $fontarray1['font']; 
$fontWeight = $fontarray1['weight']; 
if (!isset($final_arr[$fontName])) { 
    $final_arr[$fontName] = array('weight' => $fontWeight); 
} else { 
    $final_arr[$fontName]['weight'][] = $fontWeight; 
} 
+0

감사 misterion은 .. 내가 코드를 시도했지만 내가 복사하고 $ 글꼴 이름과 $으로 fontWeight 변수를 변경 한 후 두 번째 글꼴 배열에 대한 코드를 붙여 넣으면, 내가 얻을 다음 오류 : 문자열에 대해 [] 연산자가 지원되지 않습니다. – user1718343

+0

변수가 배열이 아니라 문자열처럼 보입니다. – misterion

0

같은 것?

$final_arr[] = $fontarray1 

다차원 배열 만들기 :

$theArray = array(); 
$theArray[] = array('key1'=>'val1', 'key2'=>'val2'); // creates a subarray