在提交表单后我有一个数组POST:
$POST = Array
(
[29#487_Mon] => 90,
[29#487_Mon_power] => 50,
[30#487_Thur]=>80,
[30#487_Thur_power]=>90,
[41#487_Wed]=>10,
[41#487_Wed_power]=>20,
)
我希望将$ POST数组转换为更友好的格式,如下所示:
$Transform = array(
[29]=>array(
[487_Mon] => 90,
[487_Mon_power] => 50
),
[30]=>array(
[487_Thur]=>80,
[487_Thur_power]=>90
),
[41]=>array(
[487_Wed]=>10,
[487_Wed_power]=>20
)
)
任何人都知道如何做到这一点?
答案 0 :(得分:4)
正如@Gordon在评论中指出的那样,你可以通过以下方式来实现:
<?php
$Transform = array();
foreach($POST as $key => $val){
$key_parts = explode("#", $key); //spliting 29#487_Mon to 29 and 487_Mon
/*
$key_parts[0] = 29
$key_parts[1] = 487_Mon
*/
$Transform[$key_parts[0]][$key_parts[1]] = $val;
}
echo '<pre>';
print_r($Transform);
echo '</pre>';
?>
请参阅Demo
答案 1 :(得分:2)
这正在扩大@Gordon所说的内容。如果@Gordon希望提交他的评论作为答案,我会撤回我的答案。
经过测试和工作
<?
if( $_POST['submit'] ) {
echo "<pre>";
print_r( $_POST );
echo "</pre>";
}
?>
<form action="" method="post">
<input type="text" name="29[487_Mon]"/>
<input type="text" name="29[487_Mon_power]"/>
<br/><br/>
<input type="text" name="30[487_Thur]"/>
<input type="text" name="30[487_Thur_power]"/>
<br/><br/>
<input type="text" name="41[487_Wed]"/>
<input type="text" name="41[487_Wed_power]"/>
<br/><br/>
<input type="submit" name="submit" />
</form>