배열에서 [번호]과 같은 패턴을 찾는 방법은 무엇입니까?배열에서 특정 패턴을 찾는 방법 -> [숫자]?
$array = array('1', '2', '3', '{1}', '{2}', '{3}', '[1]', '[2]', '[3]');
어떻게 배열 필터링 단지 [숫자]같은 특정 패턴을 가지고 그 문자열을 길게
제가
이 유사한 배열이?배열에서 [번호]과 같은 패턴을 찾는 방법은 무엇입니까?배열에서 특정 패턴을 찾는 방법 -> [숫자]?
$array = array('1', '2', '3', '{1}', '{2}', '{3}', '[1]', '[2]', '[3]');
어떻게 배열 필터링 단지 [숫자]같은 특정 패턴을 가지고 그 문자열을 길게
제가
이 유사한 배열이?당신은 array_filter()
와 배열을 필터링 할 수 있습니다, 그것은 반복 :
$filtered_array = array_filter($array, function($el) {
return preg_match('/^\[\d+\]$/', $el);
});
이것은 왼쪽 대괄호 [
구성 항목을 찾을 수 preg_match()
와 콜백을 사용하고, 숫자 \d+
의 다음 번호, 그 다음 오른쪽 대괄호 ]
.
당신은 is_array()
을 시도 할 수 :
foreach ($array as $num) {
if(is_array($num)) {
echo $num . "<br />";
}
}
이 배열입니까? [1] –
@MohammadMasoudian - 아니요, 특히 배열의 각 요소를 문자열로 지정한다는 것을 보여주기 위해 게시물을 업데이트 한 이후 아닙니다. – nickb
을 그냥 preg_grep를 사용
$array = array(1, 2, 3, '{1}', '{2}', '{3}', '[1]', '[2]', '[3]');
$new_array = preg_grep('#^\[\d+(?:.\d+)?\]$#', $array);
$new_array = array_values($new_array); // re-index the array
print_r($new_array); // print the results
을 정규식 설명하면서 :
^
: 문자열\[
: 경기 [
\d+
: 경기 1 자리 이상(?:.\d+)?
: 문자열의 끝또는 ['preg_filter()'] (http : // php.net/preg-filter)를 입력하십시오. – salathe
뭔가 같이 : ]
$
경기 : 선택적으로 소수 부분\]
일치 아마도? 정규 표현식은 열기 [
과 일치하며 그 뒤에 하나의 숫자와 그 뒤에 닫는 ]
이옵니다. foreach ($array as $num) {
if (preg_match('#\[\d\]#', $num)) {
echo $num;
}
}
'$ num '이''[14]''또는''abc [8] def "'이면? 이것은 첫 번째와 일치하지 않고 두 번째와 일치합니다. – nickb
문자열에 무엇이 있었는지 질문에 지정되지 않았습니다. 방금 주어진 예제를 사용했습니다. –
여기에는 몇 가지 가능성이 있습니다.
<?php
$array = array(1, 2, 3, "{1}", "{2}", "{3}", "[1]", "[2]", "[3]");
// Method 1
foreach ($array as $num)
{
if(preg_match("/\[\d+\]/", $num)){
echo $num . "<br />";
}
}
echo "<hr/>"
// Method 2
$filtered=preg_grep("/\[\d+\]/", $array);
foreach ($filtered as $num)
{
echo $num . "<br />";
}
?>
'typeof','isArray' e.t.c를 사용할 수있는 구문 분석 함수를 작성하십시오. 자신의 패턴을 전달할 때 ([number], {object}, [string], [{object}]) – FSou1
문자열을 찾거나 값의 유형을 결정한다는 의미입니까? 당신의 질문에 표기법과 약간의 혼란이있는 것 같습니다. 문자열은 적절하게 인용되어야합니다. –
실례 내가 내 질문에 –