kno*_*t22 5 php multidimensional-array
我试图使用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>';
Run Code Online (Sandbox Code Playgroud)
此代码的输出是单维数组; 然而,这不是意图.所需的数组应如下所示:

如何修改代码以实现目标?
Jim*_*imL 14
你到处都是.只需将该级别添加到数组创建中:)
$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>';
Run Code Online (Sandbox Code Playgroud)
产量
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
)
)
Run Code Online (Sandbox Code Playgroud)
$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);
Run Code Online (Sandbox Code Playgroud)