2013-05-25 3 views
1

Shuffle 함수를 사용하여 무작위로 추출한 동적 다차원 배열의 키를 어떻게 얻을 수 있습니까? 즉, 스크립트가 수직으로 나에게 단행 배열을 제공하고 각 배열의 요소를 섞은 것PHP의 동적 다차원 배열에서 키를 가져 오는 방법은 무엇입니까?

function customShuffle(array &$array) { 
    $firstElement = array_shift($array); 
    shuffle($array); 
    array_unshift($array, $firstElement); 
} 

$array = array(
    'row_1' => array("Bird", "Brown", "Bear", "Bangkok", "Bat"), 
    'row_2' => array("Carrot", "Cat", "Crispy", "Cross", "Cable"), 
    'row_3' => array("All", "Apple", "Adam", "Apart", "Air") 
); 

array_walk($array, function (&$array) { customShuffle($array); }); 

Shuffle($array); 

:

내가이 스크립트가 있다고 가정합니다.

나는 array_keys 함수를 사용하려고했지만, 나에게 주 배열 키만주고있다.

내가 필요한 것은 모든 하위 배열의 모든 요소에 대한 동적 키와 첫 번째 수준의 동적 배열 키를 얻는 것입니다. 어떻게 할 수 있습니까?

답변

2

쉽게 :)이 array_walk 콜백의 두 PARAMS 기대 : 값 을 키 :

array_walk($array, function ($val, $key) { ... }); 
+0

멋지고 빠른 +1;) – Robert

+0

알았지 만, 누락 된 정보를 추가 했으니 답변을 검토 해 주시겠습니까? – MRAN

+0

@ hek2mgl : 미안하지만 나는 너만큼 전문적이지 않아. ( – MRAN

1

를 사용하여 키를 그대로

$array = array_map(function ($v) { 
    shuffle($v); 
    return $v; 
}, $array); 

하위 배열 키

것 .. array_map
$keys = array_map(function ($v) { 
    return array_keys($v); 
}, $array); 
+0

그것은 작동하지만 특정 키의 이름에도 불구하고 첫 번째 레벨 배열에 고정 키가 있습니다! 뿐만 아니라 하위 수준의 배열 키,하지만 나는 그들에게 열쇠의 이름을 할당하지 않았기 때문에 마지막 하나, 나는 그것을 시도하고 돌아올거야. – MRAN

+0

멋진 .... 다른 문제가 있다면 알려주십시오 – Baba

+0

당신의 주도권을 주셔서 감사합니다 :) 나는 같은 문제가 있습니다 :) – MRAN

관련 문제