php学习的时候遇到了一个问题,我建立了一个二维关联数组,有三个类别:car、keyBoard、phone,每个列别中有三个数据:num、price、sum。数组像下面这种:car:             num、price、sum
keyBoard:  num、price、sum
phone:       num、price、sum然后对其中的sum元素排序,自定义了compareSum()函数。
但是排序后,再输出,就没有第一维上的关联了,也就是car、keyBoard、phone没有了,变成了默认的数字关联:0、1、2。
请问这是为什么?
我看《PHP和MySQL WEB开发》上的代码,第一维都没有指定关联,是不是PHP第一维一般不指定关联?
请各位多多指点,谢谢。代码和输出如下:
<?php
$testArray = array(
'car'=>array(
'Num' => 10,
'Price' =>100000,
'Sum' => 1000000
),
'keyBroad'=>array(
'Num'=>1000,
'Price' => 200,
'Sum' => 200000
),
'phone' => array(
'Num' => 2000,
'Price' => 3000,
'Sum' => 6000000
)
);
foreach ($testArray as $key => $value) {
foreach ($value as $key2 => $value2) {
echo "$key => $key2 => $value2 <br/>";
}
echo "<br/>";
}echo "~~~~~~~~~~~~~~~~~~~~~~~~<br/>";function compareSum($x,$y){
if ($x['Sum'] == $y['Sum']) {
return 0;
}
else if ($x['Sum'] < $y["Sum"]) {
return -1;
}
else{
return 1;
}
}usort($testArray, 'compareSum');foreach ($testArray as $key => $value) {
foreach ($value as $key2 => $value2) {
echo "$key => $key2 => $value2 <br/>";
}
echo "<br/>";
}
?>
输出如下:
car => Num => 10 
car => Price => 100000 
car => Sum => 1000000 keyBroad => Num => 1000 
keyBroad => Price => 200 
keyBroad => Sum => 200000 phone => Num => 2000 
phone => Price => 3000 
phone => Sum => 6000000 ~~~~~~~~~~~~~~~~~~~~~~~~
0 => Num => 1000 
0 => Price => 200 
0 => Sum => 200000 1 => Num => 10 
1 => Price => 100000 
1 => Sum => 1000000 2 => Num => 2000 
2 => Price => 3000 
2 => Sum => 6000000 
从上面的输出可以看出来,排序以后再输出,就没有car、keyBoard、phone了。请问这是为什么?谢谢