나는 이와 같은 배열을 가지고 있습니다.뒤집기 다차원 배열
Array (
[0]=> array("a","b")
[1]=> array("c","d")
)
그리고 난 더 나은 방법으로 내가이 작업을 수행 할 수있는 방법
Array (
[a]=> "0",
[b]=>"0",
[C]=>"1",
[d]=>"1"
)
로 변환하려면?
나는 이와 같은 배열을 가지고 있습니다.뒤집기 다차원 배열
Array (
[0]=> array("a","b")
[1]=> array("c","d")
)
그리고 난 더 나은 방법으로 내가이 작업을 수행 할 수있는 방법
Array (
[a]=> "0",
[b]=>"0",
[C]=>"1",
[d]=>"1"
)
로 변환하려면?
가장 간단한 방법은 중첩 루프를 사용하는 것입니다.
foreach($array as $k => $arr) {
foreach($arr as $v) {
$result[$v] = $k;
}
}
출력 :
는Array
(
[a] => 0
[b] => 0
[c] => 1
[d] => 1
)
그러나 배열이 클 때 많이 걸립니다. 이 결과를 얻기 위해 사용할 수있는 배열 함수가 있습니까? –
당신은 간단하게 사용할 수 있습니다 array_fill_keys
, 여기 array_merge
<?php
$test = [0=> array("a","b"),1=> array("c","d")];
$retest = array();
foreach($test as $key=>&$value){
$value = array_fill_keys($value, $key);
$retest = array_merge($retest,$value);
}
print_r($retest);
?>
출력은 다음과 같습니다
Array
(
[a] => 0
[b] => 0
[c] => 1
[d] => 1
)
array_values
,
array_fill_keys
및
array_merge
기능을 사용하여
짧은 솔루션 :
$arr = [
['a','b'],
['c','d'],
['e','f'],
];
$flipped = [];
foreach ($arr as $k => $v) {
$flipped = array_merge($flipped, array_fill_keys(array_values($v), $k));
}
print_r($flipped);
출력 :보다
Array
(
[a] => 0
[b] => 0
[c] => 1
[d] => 1
[e] => 2
[f] => 2
)
및이 형식으로 두 배열을 얻는 방법. –
$ arr = [ [ 'a', 'b'], [ 'c', 'd'], [ 'e', 'f'], ]; –
@SunilPrajapati, 확장 배열을 제시했습니다. 배열은'[[ 'a', 'b'], [ 'c', 'd']]'입니다. 그것은 잘 작동합니다. 이슈가 뭐야? – RomanPerekhrest
더 나은 방법은? 당신이 시도한 것을 보여주십시오. 또한 배열을 생성 할 때이 작업을 수행 할 수 없습니까? - 그리고 다차원 배열을 평면 배열로 바꿔야겠습니까? – Epodax
중첩 된 배열의 각 값이 키가되며 값으로 초기 상위 키가 있어야합니다. 맞습니까? – RomanPerekhrest
더 나은 방법은 빠른 방법을 의미합니다. 나중에 플랫 배열이어야하지만 플립, 이전 배열 키를 새 배열 값 및 이전 배열 값을 새 배열 키가 있어야합니다 의미합니다. –