$fruits = [
	'apple' => 'red',
	'banana' => 'yellow',
	'grape' => 'purple',
	'cherry' => 'red'
];

/* 배열의 모든 키(keys)를 배열로 추출하여 반환합니다. */
$fruits_keys = array_keys($fruits);

print_r($fruits_keys);
// 출력: Array ( [0] => apple [1] => banana [2] => grape [3] => cherry )

/* 원하는 키 값만을 반환하도록 필터(특정 값을 가지는 키)를 적용할 수도 있습니다. */
$red_fruits_keys = array_keys($fruits, 'red'); // 'red' 값을 가지는 키(keys)만을 반환합니다.

print_r($red_fruits_keys);
// 출력: Array ( [0] => apple [1] => cherry )
array_keys(array $array, mixed $filter_value, bool $strict = false): array
/* 연관 배열 */
$array_1 = [
	0 => 100,
	'color' => 'green'
];

print_r(array_keys($array_1)); // 출력: Array ( [0] => 0 [1] => color )

// 해당하는 키가 없으면 빈 배열을 반환합니다.
print_r(array_keys($array_1, 'blue')); // 출력: Array ( )


/* 일반 배열 */
$array_2 = ['red', 'blue', 'green', 'red'];

// 일반 배열일 경우 키는 인덱스(Index)가 반환됩니다.
print_r(array_keys($array_2, 'red')); // 출력: Array ( [0] => 0 [1] => 3 )

/* 다차원 배열 */
$array_3 = [
	'color' => ['red', 'green', 'blue'],
	'size' => ['small', 'medium', 'large']
];

print_r(array_keys($array_3)); // 출력: Array ( [0] => color [1] => size )
// 배열을 생성합니다.
$array = [
    'a' => 1,
    'b' => 2,
    'c' => 3
];

// array_keys() 함수를 사용하여 배열의 모든 키를 순회합니다.
foreach (array_keys($array) as $key) {
    echo "키: {$key}, 값: {$array[$key]}";
}

// 출력:
// '키: a, 값: 1'
// '키: b, 값: 2'
// '키: c, 값: 3'
// 배열을 생성합니다.
$array = [
    'a' => 1,
    'b' => 2,
    'c' => 3
];

// array_keys() 함수를 사용하여 값이 2인 키를 순회합니다.
foreach (array_keys($array, 2) as $key) {
    echo "키: {$key}, 값: {$array[$key]}";
}

// 출력:'키: b, 값: 2'
// 배열을 생성합니다.
$array = [
    'a' => 1,
    'b' => 2,
    'c' => 3
];

// array_keys() 함수를 사용하여 배열의 키를 다른 배열로 변환합니다.
$keys = array_keys($array);

// 변환된 배열을 출력합니다.
print_r($keys); // 출력: Array ( [0] => a [1] => b [2] => c )