페이지 정보
작성자 루미집사 댓글 0건 조회 2,307회 작성일 21-11-25 01:13PHP 다차원 배열 LIKE 검색
본문
PHP 다차원 배열 LIKE 검색하기.
function sMatch($search, $subject) {
$search = str_replace('/', '\\/', $search);
return preg_match("/$search/i", (string)$subject);
}
function like_search_r($array, $key, $value, array &$results = []) {
if (!is_array($array)) {
return;
}
$key = (string)$key;
$value = (string)$value;
foreach ($array as $arrayKey => $arrayValue) {
if (sMatch($key, $arrayKey) && sMatch($value, $arrayValue)) {
// add array if we have a match
$results[] = $array;
}
if (is_array($arrayValue)) {
// only do recursion on arrays
like_search_r($arrayValue, $key, $value, $results);
}
}
}
$array1 = [
'foo' => 'bar',
'subarr' => [
'test' => 'val',
'dangerous/characters' => 1,
],
];
$results1 = [];
like_search_r($array1, 'fo', 'bar', $results1);
print_r($results1);
/*
Array
(
[0] => Array
(
[foo] => bar
[subarr] => Array
(
[test] => val
[dangerous/characters] => 1
)
)
)
*/
$results2 = [];
like_search_r($array1, 'est', 'val', $results2);
print_r($results2);
/*
Array
(
[0] => Array
(
[test] => val
[dangerous/characters] => 1
)
)
*/
$results3 = [];
like_search_r($array1, 's/c', 1, $results3);
print_r($results3);
/*
Array
(
[0] => Array
(
[test] => val
[dangerous/characters] => 1
)
)
*/
- 이전글크리마스 선물로 나에게 주는 키보드 선물 21.12.25
- 다음글[고화질] 유스케 레전드! 트러블 메이커(TroubleMaker) 현아(HyunA), 장현승(140801) by 플레이버튼 21.10.30
댓글목록
등록된 댓글이 없습니다.