每次迭代Categories
数组时,我想为每个类别创建一个新数组。我的数据来自更大的数组。每次循环通过最外层的foreach时,我想创建一个具有相应$Categories
数组值名称的唯一数组。我可能没有很好地解释它,所以如果有什么我需要详细说明,请告诉我。这是一个代码示例(我已经简化了它以节省空间,但只省略了这个示例中不需要的键/值对。这可能不是最有效的方法,因为我强制它循环遍历所有菜单每次为每个类别运行的项目,但我将在稍后关注该问题。)
// $menuItems['menu_items']
)是我从中获取所有信息的主数组的名称
$my_variable_array_name
是我想用变量创建的数组,这样我每次运行($Categories as $Category
)foreach循环时都可以创建一个具有不同名称的新数组。
$Categories = array('0Cat', '1Cat', '2Cat', '3Cat', '4Cat', '5Cat');
foreach ($Categories as $Category)
{
foreach($menuItems['menu_items'] as $Curr_Item)
{
if($Curr_Item['category']==$Category)
{
$my_variable_array_name[$Category.'_Entry'][$Curr_Item['name']] =
array('name'=>$Curr_Item['name'],
'id'=>$Curr_Item['id'],
'amount'=>$Curr_Item['amount'],
'on_hold'=>$Curr_Item['on_hold'],
'category'=>$Curr_Item['category'],
'Measurement'=>$Curr_Item['Measurement'],);
}
}
}
所以总结和解释一下,我想只需要写一次这个chuck,每次运行(对于每个类别条目),它将创建一个具有唯一名称的新(不同)数组(衍生物)类别值ie:"1Cat"
等等。)所以我最终会得到6个不同的数组,其中包含相应的信息。
我尝试使用$Category
作为数组的名称,但它错了。如果我给数组一个名字,但是它将所有的数组写入,我希望每个类别都在一个新的数组中,代码工作正常。
答案 0 :(得分:0)
您的问题听起来确实令人困惑,但我认为您只是在寻找可以使用的迭代器。
foreach ($categories as $i => $category) {
// $i starts at 0
}
答案 1 :(得分:0)
你能试试吗?我在这里声明了一个临时数组,其中包含您在循环中填充的所有数据。循环完成后,我使用php的内置函数提取打开数组,该数组中的所有项都成为一个单独的变量。
所以你以后可以直接使用它们。
P.S尝试使用以字母开头的类别名称。因为$0Cat
会给你语法错误。
$Categories = array('0Cat', '1Cat', '2Cat', '3Cat', '4Cat', '5Cat');
$arr = array();
foreach ($Categories as $Category)
{
foreach($menuItems['menu_items'] as $Curr_Item)
{
if($Curr_Item['category']==$Category)
{
$tmp = $my_variable_array_name[$Category.'_Entry'][$Curr_Item['name']];
$arr[$tmp] =
array('name'=>$Curr_Item['name'],
'id'=>$Curr_Item['id'],
'amount'=>$Curr_Item['amount'],
'on_hold'=>$Curr_Item['on_hold'],
'category'=>$Curr_Item['category'],
'Measurement'=>$Curr_Item['Measurement'],);
}
}
}
extract($arr);