如何更新数组中的值?

分享于2022年07月17日 arrays foreach php 问答
【问题标题】:如何更新数组中的值?(How to update the value inside the array?)
【发布时间】:2022-07-07 14:17:17
【问题描述】:

我正在使用 PHP,我有一个数组,我正在根据某些条件更新数组中的值,它在 if 块中,但值没有更新,你能给出建议我错过了什么吗..?

转储 $data['bookslist']

Array
(
    [0] => Array
        (
            [id] => 22
            [book_name] => tank1
            [book_type] => 1
            [status] => 1
        )

    [1] => Array
        (
            [id] => 23
            [book_name] => g1
            [book_type] => 2
            [status] => 1
        )
)

代码

foreach($data['bookslist'] as $value){
            if(array_key_exists('book_type',$value)){

                if($value['book_type'] == '1'){
                    $data['bookslist'][$value]['book_type'] = 'Horror';
                    break;
                }
                if($value['book_type'] == '2'){
                    $value['book_type'][$value]['book_type']= 'Comedy';
                    break;
                }
                
            }
        }


【解决方案1】:

您使用 $value 作为键,但它是一个数组。 通过使用传递引用,您可以修改数组。 建议:如果 book_type 有限,也可以使用 switch case。

foreach($data['bookslist'] as &$value){
        if(array_key_exists('book_type',$value)){

            if($value['book_type'] == '1'){
                $value['book_type'] = 'Horror';
                break;
            }
            if($value['book_type'] == '2'){
                $value['book_type']= 'Comedy';
                break;
            }
            
        }
    }