php将值插入到使用foreach的数组中
发布时间:2020-12-13 13:38:49 所属栏目:PHP教程 来源:网络整理
导读:我有一个很基本的问题,但我被困住了.我对 PHP很新,我有一个像这样的数组: $array = array( 'one' = 1,'two' = array('key1' = 'val1','key2' = 'val2'),'three' = array('key1' = 'val1','four' = array('key1' = 'val1','key2' = 'val2')); 并且对于数组中
我有一个很基本的问题,但我被困住了.我对
PHP很新,我有一个像这样的数组:
$array = array( 'one' => 1,'two' => array('key1' => 'val1','key2' => 'val2'),'three' => array('key1' => 'val1','four' => array('key1' => 'val1','key2' => 'val2') ); 并且对于数组中的每个数组(即’二,’三’和’四’),我想插入’key3’=> ‘val3’转换成这些数组. 我试过这个: foreach($array as $item) { if (gettype($item) == "array") { $item['key3'] = 'val3'; } } 但它不行,我不知道为什么.在各地使用各种print_r,似乎插入’key3’=> ‘val3’成$item,如果我在循环中打印出来,但是原来的数组似乎没有改变.我也试过一个常规的循环,但也没有工作. foreach 与$item的副本一起工作,所以您不能修改foreach中的原始数组.解决这个问题的一个方法是使用&操作符.
foreach($array as &$item) { if (is_array($item)) { $item['key3'] = 'val3'; } } 另一个更优雅的方式是使用 array_walk($array,function (&$v,$k) { if (is_array($v)) { $v['key3'] = 'val3'; } }); 这个例子将从PHP 5.3开始,其中介绍了Closures. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |