Language/PHP
PHP - array_search(), array_column()
보라색츄르
2022. 5. 10. 18:10
1. array_search()
- 주어진 값으로 배열을 검색하여 성공시 키를 반환하고 실패시 false를 반환하는 함수
- PHP에서 1차원 배열 값으로 키 찾기
<?php
$arr =['red', 'black','yellow','blue'];
echo(array_search('yellow',$arr));
?>
----------------------------------------------------------
결과값 : 2
- 찾은 키로 값꺼내기
<?php
$arr =['red', 'black','yellow','blue'];
$key=array_search('yellow',$arr);
echo $arr[$key];
?>
--------------------------------------------------------
결과 : yellow
2. array_column()
- 배열의 key로 검색하여 해당 키값에 해당되는 값을 배열로 반환하는 함수
- 2차원 배열
- 키값으로 검색하기
<?php
$arr = [
['id'=>1, 'color'=>'red' ],
['id'=>2, 'color'=>'yellow' ],
['id'=>3, 'color'=>'black' ],
['id'=>4, 'color'=>'blue' ],
['id'=>5, 'color'=>'pink' ]
];
$color = array_column($arr, 'color');
print_r($color);
?>
============================================================================
결과 : Array ( [0] => red [1] => yellow [2] => black [3] => blue [4] => pink )
- 주어진 value로 key의 값찾기
<?php
$arr = [
['id'=>1, 'color'=>'red' ],
['id'=>2, 'color'=>'yellow' ],
['id'=>3, 'color'=>'black' ],
['id'=>4, 'color'=>'blue' ],
['id'=>5, 'color'=>'pink' ]
];
$value='blue';
$key = array_search($value, array_column($arr,'color'));
echo $arr[$key]['id'].':'.$arr[$key]['color'];
?>
==========================================================================================
결과 : 4:blue
- 주어진 value이 key의 값에 없을때
(주의 array_search는 실패시 false을 반환하기 때문에 분기를 할경우 false로 분기처리해야한다.)
<?php
$arr = [
['id'=>1, 'color'=>'red'],
['id'=>2, 'color'=>'yellow'],
['id'=>3, 'color'=>'black'],
['id'=>4, 'color'=>'blue'],
['id'=>5, 'color'=>'pink']
];
$key = array_search('abc', array_column($arr, 'color'));
if($key === false){
echo '없음';
}else {
echo $arr[$key]['color'];
}
?>
=======================================================================
결과 : 없음