2013-01-15 58 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

相关问题