2014-04-15 2 views
0

배열의 값을 확인하려고하고 값이 발견되면 값을 증가 시키려고합니다. 나는 아래 코드에서 보듯이 그것을 시도했지만 성공하지는 못했다.배열에서 여러 값을 확인하는 방법은 무엇입니까?

$productdas=array("DAS","DayEnd","DAAS"); 
if (strpos(serialize($row['pirority']),"P1")!==false && 
    strpos(serialize($row['product']),'$productdas')!==false) 
     { 
     $dasp1++; 
     } 

어떤 도움을 주셔서 감사합니다.

감사합니다.

+0

'$ 행 [ 'pirority를'] 무엇을 '포함하고 예상되는 결과는 무엇인가? –

+0

왜'serialize() '를 사용하고 있습니까? –

+1

'$ productdas'는 변수를 구문 분석하지 않습니다. 잃는다. –

답변

1

$needle으로 배열을 허용하는 strpos() 변형을 작성해야합니다. 예를 들면 :

function strpos_array($haystack, array $needles) 
{ 
    foreach ($needles as $needle) { 
     if (($pos = strpos($haystack, $needle)) !== false) { 
      return $pos; 
     } 
    } 
    return false; 
} 

if (strpos_array(serialize($row['product']), $productdas)!==false) { ... } 

preg_match()를 사용하여이를 구현하는 것도 가능합니다.

1

나는 당신이 $productas 배열의 값 중에 대한 주어진 문자열을 검색하여 총 발생 횟수를 찾기 위해 노력하고 있으리라 믿고있어. 이것은 substr_count()으로 수행 할 수 있습니다 DASfooDayEndDAAShelloDAS입니다

$productdas = array("DAS","DayEnd","DAAS"); 
$count = 0; 

foreach ($productdas as $needle) { 
    $count += substr_count($row['pirority'], $needle); 
} 

echo $count; 

$row['pirority'] 경우, 카운트가 4이 될 것입니다.

Demo

관련 문제