关于PHP数组 赋值的问题?

$ss=array(array("one"=>"1","two"=>"2","three"=>"3"),array("one"=>"2","two"=>"3","thre... $ss = array(
array("one"=>"1","two"=>"2","three"=>"3")
,array("one"=>"2","two"=>"3","three"=>"4")
);
foreach ($ss as $k) {
if($k['two'] == "3"){
$k['two'] = 1000;

}
}
print_r($ss);exit;
结果是:
Array
(
[0] => Array
(
[one] => 1
[two] => 2
[three] => 3
)

[1] => Array
(
[one] => 2
[two] => 3
[three] => 4
)

)
但是我想要的结果是:

Array
(
[0] => Array
(
[one] => 1
[two] => 2
[three] => 3
)

[1] => Array
(
[one] => 2
[two] => 1000
[three] => 4
)

)

就是这个字段被我改为 [two] => 1000 其他的都不变,有什么办法吗?我试了一晚头都晕了.
我想通过循环得到结果,而不是直接在数组里面直接改.
展开
 我来答
jiangxibaiyi
推荐于2016-04-26 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14411

向TA提问 私信TA
展开全部
<?php
$ss = array(
 array("one"=>"1","two"=>"2","three"=>"3")
   ,array("one"=>"2","two"=>"3","three"=>"4")
);
$i = 0;
foreach ($ss as $k) {
 if($k['two'] == "3"){
  $ss[$i]['two'] = 1000;
 
 }
 $i++;
}
print_r($ss);exit;

需要注意的是:

你的代码

$ss是一个数组薯宽

而foreach循环中的$k是例外一个数组

换卖手早言之,中雀你改变的是被循环后的一个一维数组,而不是改变的你原数组本身!

yu641150278
推荐于2016-01-31 · TA获得超过1069个赞
知道小有建树答主
回答量:637
采纳率:100%
帮助的人:294万
展开全部
foreach($arr as $k=>$v){   
//这个的意思是圆老 循环数组$arr,把当前循环的下标(键名)赋值给$k,当前循环的数组元素赋值给$v
//然后你改变的是$v的值,这就类似于
//    $a = 1;
//    $b = $a;
//    $a = 2;
//    echo $b;
//    你改变了$a的值,但$b还是原来的1;
}
//所以你这个可以这样修改
foreach ($ss as $k=>$v) {
    if($v['two'] == "3"){
     $ss[$k]['two'] = 1000;
    橘凳升 //或者
     //$v['two'粗或] = 1000;
     //$ss[$k] = $v;
    }
}
print_r($ss);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ccae746
2013-11-05
知道答主
回答量:18
采纳率:0%
帮助的人:2.4万
展开全部
你改的是变量不是引用,只需要在foreach ($ss as $k) 中改为foreach ($ss as &$k) 加个"&"的符号就可以了,很好改的.
或者直接吵隐修改肢山,没必要便升饥厅利数组,$ss[1]["two"] = 1000;直接赋值就可以了,没必要那么麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月夜的假面
2013-11-05
知道答主
回答量:28
采纳率:0%
帮助的人:16.9万
展开全部
你赋值的是$k,而不是$ss,
$ss = array(
array("渣羡坦one"=>"1","two"=>"2","three"=>"3"如桐),
array("one"=>"2","two"=>派行"3","three"=>"4")
);
foreach($ss as $k=>$v){
if($v['two'] == 3){
$ss[$k]['two'] = 1000;
}
}
print_r($ss);
这样就是你要的结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式