2013-01-15 62 views
0

我有一個數組如下:存儲從數組值到另一個數組

var localproducts = [packageId, categoryId, dataId]; 

我想通過這個數組的每個功能和所有的數據ID存儲到有一個所有項目的另一個新數組某些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; 
} 

$filtered_values = array_filter($localProducts, filter); 

您可以爲一個或多個陣列做同樣的,只是改變了過濾功能是這樣的:

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

現在,如果你想創建一個只有值dataId的新陣列應該用簡單的foreach完成。

var $dataIds = array(); 

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

但是如何返回packageIds爲3的所有項目的dataids? – user1937021

+0

@ user1937021它返回完整的對象,然後可以獲取所需的'dataId'或任何其他信息。 – jaudette

+0

對不起,但我怎樣才能將結果的所有dataids保存在變量中?謝謝 – user1937021

相關問題