我正在尝试使用 foreach 循环在 PHP 中创建多维数组。这是到目前为止的代码:
$levels = array('low', 'medium', 'high');
$attributes = array('fat', 'quantity', 'ratio', 'label');
foreach ($levels as $key => $level):
foreach ($attributes as $k =>$attribute):
$variables[] = $attribute . '_' . $level;
endforeach;
endforeach;
echo '<pre>' . print_r($levels,1) . '</pre>';
echo '<pre>' . print_r($variables,1) . '</pre>';
这段代码的输出是一个一维数组;然而,这不是目的。所需的数组应如下所示:
代码应该如何修改才能达到目的?
你就快到了。只需将级别添加到数组创建中即可:)
$levels = array('low', 'medium', 'high');
$attributes = array('fat', 'quantity', 'ratio', 'label');
foreach ($levels as $key => $level):
foreach ($attributes as $k =>$attribute):
$variables[$level][] = $attribute . '_' . $level; // changed $variables[] to $variables[$level][]
endforeach;
endforeach;
echo '<pre>' . print_r($levels,1) . '</pre>';
echo '<pre>' . print_r($variables,1) . '</pre>';
输出
Array
(
[low] => Array
(
[0] => fat_low
[1] => quantity_low
[2] => ratio_low
[3] => label_low
)
[medium] => Array
(
[0] => fat_medium
[1] => quantity_medium
[2] => ratio_medium
[3] => label_medium
)
[high] => Array
(
[0] => fat_high
[1] => quantity_high
[2] => ratio_high
[3] => label_high
)
)
$levels = ['low', 'medium', 'high'];
$attributes = ['fat', 'quantity', 'ratio', 'label'];
$result = [];
foreach ($levels as $level) {
$result[$level] = [];
foreach ($attributes as $attribute) {
$result[$level][] = $attribute . '_' . $level;
}
}
var_dump($result);
$levels = ['low', 'medium', 'high'];
$attributes = ['fat', 'quantity', 'ratio', 'label'];
foreach ($levels as $level) {
foreach ($attributes as $attribute) {
$variables[$level][] = $attribute . '_' . $level;
}
}
print_r($variables);