刚开始以为php中的Array和Java中的Map差不多,但是实际是Set,即键不能重复,要重复的话,后面的键值对会覆盖前面的。
比如我要如下图效果:
我开始先定义一个数组:
echo "php array key相同,后面数据会覆盖前面数据:</br>";
$carsDic = array("德系"=>"宝马","日系"=>"丰田","德系"=>"奔驰");
foreach($carsDic as $key => $value){
echo $key.$value."</br>";
}
key 德系 value奔驰 覆盖了 key 德系 value 宝马
想要过滤需要在array 中再嵌套 array,代码如下:
$carsDic = array(array("德系"=>"宝马"),array("日系"=>"丰田"),array("德系"=>"奔驰"));
foreach($carsDic as $carDic){
foreach($carDic as $key=>$value){
echo $key.$value."</br>";
}
}
echo "帮我挑选德系的车,不要小日本的:</br>";
$carsDic = array(array("德系"=>"宝马"),array("日系"=>"丰田"),array("德系"=>"奔驰"));
foreach($carsDic as $carDic){
foreach($carDic as $key=>$value){
if($key == "德系"){
echo $key.$value."</br>";
}
}
}
代码输出效果就是第一张图。