// 일반 배열에서 array_search() 함수
$arr = ['a', 'b', 'c'];

$key = array_search('c', $arr);
var_dump($key); // 출력: int(2)

$notFound = array_search('d', $arr);
var_dump($notFound); // 출력: bool(false)

// 연관 배열에서 array_search() 함수
$fruits = [
	'apple' => 'red',
	'banana' => 'yellow',
	'cherry' => 'red'
];

$colorToFind = array_search('red', $fruits);
var_dump($colorToFind); // 출력: string(5) 'apple'
array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false
$fruits = [
	'apple' => 'red',
	'banana' => 'yellow',
	'cherry' => 'red'
];

// $fruits 배열에서 'red' 값을 검색하여 첫 번째 일치하는 키(인덱스)를 반환합니다.
$colorToFind = array_search('red', $fruits);

// $fruits 배열에서 'red' 값을 가지는 키(인덱스)는 두 개가 있습니다. 'apple'과 'cherry'입니다.
// $colorToFind에는 'red'를 가진 첫 번째 항목의 키(인덱스)가 할당됩니다.
// 따라서 $colorToFind는 'apple'이 됩니다.
var_dump($colorToFind); // 출력: string(5) 'apple'
$numbers = [0, "0", false, null];
$searchValue = 0;

$result = array_search($searchValue, $numbers, true);

if ($result == false) {
    echo "찾는 값 $searchValue 가 배열 내에서 발견되지 않았습니다.";
} else {
    echo "찾는 값 $searchValue 의 위치는 인덱스 $result 입니다.";
}

// 잘못된 결과 발생!!!
// 출력: '찾는 값 0 가 배열 내에서 발견되지 않았습니다.'

if ($result === false) {
    echo "찾는 값 $searchValue 가 배열 내에서 발견되지 않았습니다.";
} else {
    echo "찾는 값 $searchValue 의 위치는 인덱스 $result 입니다.";
}

// 출력: '찾는 값 0 의 위치는 인덱스 0 입니다.'
$numbers = [1, 2, 3, 4, 2, 5, 6];
$searchValue = 2;

if (array_search($searchValue, $numbers) !== false) {
    echo '찾는 값이 존재합니다.';
} else {
    echo '찾는 값이 존재하지 않습니다.';
}

// 출력: '찾는 값이 존재합니다.'
$products = [
    'apple' => 1.99,
    'banana' => 0.99,
    'cherry' => 2.49
];

$targetPrice = 1.00; // 찾으려는 가격

$key = array_search($targetPrice, $products);

if ($key != false) {
    unset($products[$key]); // 찾은 값을 삭제
    // 또는 값을 변경: $products[$key] = 새로운 가격;
} else {
    echo '찾을 수 없는 제품 또는 가격입니다.';
}

// 출력: '찾을 수 없는 제품 또는 가격입니다.'
$students = [
    ['name' => 'Alice', 'age' => 20],
    ['name' => 'Bob', 'age' => 22],
    ['name' => 'Charlie', 'age' => 21]
];

$searchName = 'Bob';

foreach ($students as $key => $student) {
    if (array_search($searchName, $student) !== false) {
        echo "이름이 $searchName 인 학생을 찾았습니다. 학생 번호: $key";
        break;
    }
}

// 출력: '이름이 Bob 인 학생을 찾았습니다. 학생 번호: 1'
$numbers = [3, 5, 2, 8, 10, 6];
$searchValue = 8;

$key = array_search($searchValue, $numbers);

if ($key !== false) {
    echo "찾는 값 $searchValue 의 위치는 인덱스 $key 입니다.";
} else {
    echo "찾는 값 $searchValue 가 배열 내에 존재하지 않습니다.";
}

// 출력: '찾는 값 8 의 위치는 인덱스 3 입니다.'