0

我有一个数组如下:

var localproducts = [packageId, categoryId, dataId];

我想用 each 函数遍历这个数组,并将所有 dataId 存储到另一个新数组中,该数组包含具有特定 packageID 的所有项目,即如果 pacakgeId 为 3,而不是将 dataId 存储到新数组中。谢谢您的帮助!

4

1 回答 1

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;
  }
}
于 2013-01-15T12:51:21.303 回答