2013-03-29 2 views
0

theOptions 배열의 값 중 일부를 전달하고 $ theDefaults라는 새로운 배열에 드롭하려고합니다.PHP 하나의 배열에서 다른 배열로 값을 전달하려면 어떻게해야합니까?

$theOptions = array(

    'item1' => array('title'=>'Title 1','attribute'=>'Attribute 1','thing'=>'Thing 1'), 
    'item2' => array('title'=>'Title 2','attribute'=>'Attribute 2','thing'=>'Thing 2'), 
    'item3' => array('title'=>'Title 3','attribute'=>'Attribute 3','thing'=>'Thing 3') 

); 

그래서, $ theDefaults 배열은 다음과 같아야합니다

$theDefaults = array(

    'Title 1' => 'Attribute 1', 
    'Title 2' => 'Attribute 2', 
    'Title 3' => 'Attribute 3' 

); 

그러나, 나는이 작업을 수행하는 방법을 알아낼 수 없습니다. 이 작업을 시도했지만 명확하게 작동하지 않습니다.

$theDefaults = array(); 

foreach($theOptions as $k=>$v) { 
    array_push($theDefaults, $v['title'], $v['attribute']); 
} 

하지만이 프로그램을 실행할 때 ...

foreach($theDefaults as $k=>$v) { 
    echo $k .' :'.$v; 
} 

그것은이를 반환합니다. 0 : 제목 11 : 속성 12 : 제목 23 : 속성 24 : 제목 35 : 속성 3

soooo 가까이 보이지만 왜 배열의 숫자입니까?

답변

6

는 것보다 훨씬 간단 :

$theDefaults = array(); 
foreach($theOptions as $v) { 
    $theDefaults[$v['title']] = $v['attribute']; 
} 
+0

문제가 array_push' 배열의 마지막에 첫번째 후 모든 인수를 밀어'있다는 것을 주목. – castis

+0

Oooops, 몇 초 만에 나를 쳐라. :) –

+0

와우. 그게 빠르다. 감사! 그것은 효과가 있었다. 분명히 나는 ​​8 분 안에 당신의 대답을 정확하게 말할 수 있습니다. – Starfs