PHP中的二维数组怎么用foreach修改特定值或批量修改

96次阅读

共计 1199 个字符,预计需要花费 3 分钟才能阅读完成。

之前我们已经说过怎么拼合从数据库中取出的数值并去重:

PHP 中数据库查询出来的二维数组去重方法

那么,我们任然有的需求是,修改指定 key 对应的 value,或者批量修改某个字段的值,这又应该怎么做呢?

两种方式,一种是全部更改,另一种是改指定的值。

一、全部修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public function array_test(){
// 修改 二维数组中的 name 为 Getchar
 
$users = array(  
 
    array(‘name’ => ‘GetcharZp’, ‘age’ => 19),  
    
    array(‘name’ => ‘Mcx’, ‘age’ => 18)
    
    );
    
    foreach ($users as &$user) {  
    
    $user[‘name’] = ‘Getchar’;
    
    }unset($user); // 销毁掉 user 引用
    print_r($users);
}

如上,整个 二维数组 中的 name 全部都被修改。

二、修改指定

1
2
3
4
5
6
7
8
for($i = 0; $i < count($bill_data); ++ $i)  {
if($bill_data[$i][‘state’] == ‘ 减员 ’){
$bill_data[$i][‘state’] = ‘ 减员 ’;
}else{
$bill_data[$i][‘state’] = ‘ 正常 ’;
};
appindexmodelBillData::create($bill_data[$i]);
}

比如上面的代码,从数据库中取出 billData,$i 计数,少于二维数组个数时,自增。

代码中的判断,是判断当前 i 中字段 state 为 ’ 减员 ’ 则保留,否则都改为正常。

最后将当前 i 对应的数据,插入数据库中。

需要注意的是,插入数据库,应该是$bill_data[$i],而不是$bill_data

正文完
 0