我需要形成如下格式的多维数组,但是我无法计算出算法
array(
[0]=>array(
"id"=>"1","data"=>array([0]=>array("kid"=>"434","k"=>"Ali","m"=>"msj1"), [1]=>array("kid"=>"344","k"=>"Dali","m"=>"msj3")),
[1]=>array(
"id"=>"2","data"=>array([0]=>array("kid"=>"347","k"=>"Cenk","m"=>"msj2"), [1]=>array("kid"=>"345","k"=>"Tan","m"=>"msj4")))数据来自mysql查询,如下所示:
从table1选择rid=1 ORDER BY ( id )中的rid=1,k,m,id
样本数据:
id kid k m
1 434 Ali msj1
2 347 Cenk msj2
1 344 Dali msj3
2 345 Tan msj4php循环如下:
do {
//whatever I tried here failed :(
} while ($t = mysql_fetch_assoc($r_tav));我希望我能更好地理解这个示例中的多维数组。
发布于 2011-11-18 11:06:36
$arrRows = mysql_fetch_array($r_tav);
$arrRowData = array();
$arrRowDataFinal = array();
foreach ($arrRows as $key => $value){
$arrRowData[$value['id']][] = array("kid"=>$value['kid'],"k"=>$value['k'],"m"=>$value['m']);
}
foreach($arrRowData as $key => $value){
$arrRowDataFinal[] = array('id' => $key, 'data' => $value);
}发布于 2011-11-18 10:36:48
你想要的似乎是:
while ($t = mysql_fetch_assoc($r_tav)){
$arr[] = $t;
}$arr将包含您的数组
在重新阅读这个问题之后,它似乎并不完全是你想要的结构,但它可以简单地转化为:
while ($t = mysql_fetch_assoc($r_tav)){
$arr[] = array('id' => $r_tav['id'],
'data' => array('kid' => $r_tav['kid'],
'k' => $r_tav['k'],
'm' => $r_tav['m']));
}https://stackoverflow.com/questions/8181015
复制相似问题