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'];
        }

?>
=======================================================================
결과  : 없음