2013-01-15 4 views
0

다음 I 배열을 가지고다른 배열로 배열에서 값들을 저장

var localproducts = [packageId, categoryId, dataId]; 

는 I는 각각의 기능이 어레이를 통과하고있는 모든 상품의 또 다른 새로운 배열로 모든 dataIds를 저장할 특정 packageID 즉, pacakgeId가 3보다 큰 경우 dataId를 새 배열에 저장하려고합니다. 도와 주셔서 감사합니다!

+3

이와 같은 배열을 사용하면 'dataId'가 하나만 있습니다. 실제로 이런 배열이 있습니까? 'var localproducts = [[packageId, categoryId, dataId], ...];' –

+0

객체 배열이되어야한다고 생각합니다. 아마도 쉼표를 사용해서는 안됩니다. 즉, packageIds, categoryIDs 및 dataIds의 목록이 필요합니다. . – user1937021

답변

0

내가 아는 바로는 객체 배열을 가지고 있으므로, packageId 속성을 가진 객체를 3으로 유지해야합니다. array_filter을 봐야합니다.

코드는 기본적으로 다음과 같이 보일 것이다 : 당신이 원하는 경우 지금

function filter($var) { 
    return $var['packageId'] == 3; 
} 

: 당신은 배열이나 배열에 대해 동일한 작업을 수행 할 수 있습니다

function filter($var) { 
    return $var->packageId == 3; 
} 

$filtered_values = array_filter($localProducts, filter); 

, 그냥 같은 필터 기능을 변경 dataId 값만있는 새 배열을 만들려면 간단한 foreach을 사용해야합니다.

var $dataIds = array(); 

foreach($localProducts as $prod) { 
    if($prod->packageId == 3) { 
    $dataIds[] = $prod->dataId; 
    } 
} 
+0

하지만 packageIds가 3 인 항목의 모든 데이터 ID를 어떻게 반환합니까? – user1937021

+0

@ user1937021 그것은 완전한 객체를 리턴한다. 그러면 원하는'dataId' 또는 다른 정보를 얻을 수있다. – jaudette

+0

미안하지만 어떻게 그 결과의 모든 데이터 ID를 변수에 저장할 수 있습니까? 감사합니다 – user1937021

관련 문제