2011-09-14 4 views
0

값이 동적으로 채워지는 배열이 있으며 값이 존재하는지 확인해야합니다.키가있는 배열의 특정 값 검색

while (.....) { 
    $fileData[] = array("sku" => $sku, "qty" => $qty); 
} 

$product_sku = $product->getSku(); 

if (in_array(array("sku",$product_sku), $fileData)){ 
    echo "OK <BR/>";  
} 
else{ 
    echo "NOT FOUND <BR/>"; 
} 

키가있는 모든 것은 나를 혼란 :

은 내가 follwing을하지만 작동하지 않습니다했습니다. 테이블 구조 또는 in_array() 문만 변경해야합니까? 해결책을 찾도록 도와 줄 수 있습니까?

+0

가능 중복 [PHP : 즉시 액세스 배열 값 (http://stackoverflow.com/questions/13109/php-access-array-value-on-the-fly) –

+0

내 질문에 무엇을해야하는지 정말로 이해하지 못한다. 당신이 게시 한 사람과 – zekia

+0

오, 그래, 내가 다소 혼란스럽게 설명했다고 생각하지만 getSku에 의해 반환 된 값이 fileData 배열의 * any *에 있는지 확인하려고합니다. – typeoneerror

답변

1

의 키와 배열에 존재하는지 당신은 볼 수 있습니다 또한

array_key_exists('sku', $fileData); 

, 당신은 단지 직접 확인할 수 있습니다 재귀를 확인하기 위해 시도 할 수있는 것처럼

if (isset($fileData['sku']) 

것 같습니다 키? getSku()가 반환하는 것을 볼 필요가 있다고 생각합니다. $ FILEDATA는 하늘의 배열 인 경우는

fileData = array("sku" => $sku, "qty" => $qty); 

데모에 대한 가짜 데이터 (크기의이에 시도하지

fileData[0] = array("sku" => $sku, "qty" => $qty); 

이있을 것이다, 그래서 $ FILEDATA []는 기존 배열에 값을 추가합니다 목적)

$fileData = array(
    array("sku" => "sku1", "qty" => 1), 
    array("sku" => "sku2", "qty" => 2), 
); 

$sku = "sku2"; // here's the sku we want to find 
$skuExists = false; 

// loop through file datas 
foreach ($fileData as $data) 
{ 
    // data is set to each array in fileData 
    // check if sku exists in that array 
    if (in_array($sku, $data)) 
    { 
     // if it does, exit the loop and flag 
     $skuExists = true; 
     break; 
    } 
} 

if ($skuExists) 
{ 
    // do something 
} 
+0

fileData [] ... 코드가 루프 안에 있습니다. 나는 그 질문을 명확하게하기 위해 질문의 코드를 편집 할 것이다. 또한 getSku()는 "w125-256"과 같은 코드를 반환합니다. – zekia

+0

PHP 배열의 키를 완전히 오해했을 수도 있습니다. 나는 PHP에 아주 새롭다 – zekia

+1

그것은 일했다 :) 당신에게 대단히 typeoneerror 감사합니다 :) – zekia